{"version":3,"sources":["Images/Background/1.png","indexApp.tsx","store/WeatherForecasts.ts","store/index.ts","store/Counter.ts","index.tsx","store/configureStore.ts","Images/ico-pttgrp.png","registerServiceWorker.ts","components/SysComponent/SystemComponent.tsx","components/form/formErrors.js","components/form/InputFormItemLogin.js","components/ChangePassword.tsx","components/ForgotPassword.tsx","components/form/Table/CustomTable.tsx","components/DialogComponents/DialogFroala.tsx","i18n/en.js","i18n/index.js","components/form/MaterialUI/reactSelectMaterialUi.js","components/form/SelectFormItemLogin.js","components/Login.tsx","components/General/MasterPage/Layout_Front.tsx","components/form/SelectFormItem.js","components/form/TimePickerFormItem.js","components/form/CheckboxFormItem.js","components/form/DatePickerFormItem.js","components/form/CheckboxListFormItem.js","components/form/TextAreaFormItem.js","components/form/Fileuploader.tsx","components/SysComponent/MaterialComponent.tsx","components/DialogComponents/DialogRemark.tsx","components/General/EventApprove.tsx","components/form/DatePickerRangeFormItem.js","components/General/CreateReport.tsx","components/General/ContactUs.tsx","components/General/EventTodayComponent/EventTodayOperation.tsx","components/General/EventTodayComponent/EventTodaySecurity.tsx","components/General/EventTodayComponent/EventTodayCSR.tsx","components/General/EventTodayComponent/EventToday.tsx","components/form/SelectNoFormItem.js","components/form/InputNoForm.tsx","components/form/DatePickerRangeNoForm.tsx","components/General/EventRecordComponent/EventRecord.tsx","components/General/ChartsComponent/Charts_ByEventType.tsx","components/form/CheckboxListNoForm.tsx","components/General/ChartsComponent/Charts_SummaryByEventType.tsx","components/General/ChartsComponent/Chats_ReportStatistics.tsx","components/General/ChartsComponent/Chats_Report_Security.tsx","components/General/Report.tsx","components/General/ReportAbnormal.tsx","components/General/ReportComponent/WeeklyReportComponent.tsx","components/General/ReportWeekly.tsx","components/Logout.tsx","components/LoginBypass.tsx","components/AZUREAD/LoginEP.tsx","components/loginAction.tsx","components/General/ReportComponent/MonthlyComponent.tsx","components/General/ReportMonthly.tsx","components/General/ChartsComponent/Charts_Stacked_AreaByYear.tsx","components/General/ReportYearly.tsx","components/Administrator/DailyMonitoringReportComponent/EventReportPlantOperation.tsx","components/Administrator/DailyMonitoringReportComponent/EventReportPlantSecurity.tsx","components/Administrator/DailyMonitoringReportComponent/EventReportCSR.tsx","components/Administrator/DailyMonitoringReportComponent/DailyMonitoringReport.tsx","components/Administrator/Home.tsx","components/DialogComponents/DialogComWorkTime.tsx","components/DialogComponents/DialogComEventType.tsx","components/DialogComponents/DialogSubsidary.tsx","components/Administrator/Company.tsx","components/form/InputFormItem.js","components/form/RadioFormItem.js","components/Administrator/CreateCompany.tsx","components/DialogComponents/DialogSubArea.tsx","components/Administrator/AreaStructure.tsx","components/Administrator/Create_AreaStructure.tsx","components/DialogComponents/DialogSubEventType.tsx","components/Administrator/EventType.tsx","components/Administrator/Create_EventType.tsx","components/DialogComponents/DialogComponents.tsx","components/Administrator/ReceiverGroup.tsx","components/form/RadioNoForm.tsx","components/Administrator/Create_ReceiverGroup.tsx","components/form/TimePickerNoForm.tsx","components/Administrator/MailMonitoringComponents/LogMonitoring.tsx","components/Administrator/MailSetupMonitoring.tsx","components/Administrator/UserPermission.tsx","components/Administrator/NotificationTime.tsx","components/DialogComponents/DialogCompanyNoti.tsx","components/Administrator/NotificationCompany.tsx","components/Administrator/SetAdvanceEventDays.tsx","components/form/DatePickerNoForm.tsx","components/Administrator/LogExport.tsx","components/Administrator/Autocomplete/AutocompleteEmployee.tsx","components/Administrator/Create_UserPermission.tsx","components/Administrator/MasterPage/Layout_MP_Back.tsx","components/Administrator/Importdata/ImportUserData.tsx","components/General/Manuel.tsx","components/TestSentMail.tsx","components/TaskDailyMail.tsx","components/TestPIS.tsx","ClearCache.js","App.tsx"],"names":["module","exports","ReactDOM","render","document","getElementById","serviceWorker","unloadedState","forecasts","isLoading","reducers","counter","state","incomingAction","undefined","count","type","weatherForecasts","action","startDateIndex","baseUrl","getElementsByTagName","getAttribute","history","createBrowserHistory","basename","store","initialState","middleware","thunk","reduxMiddleware","routerMiddleware","rootReducer","combineReducers","router","connectRouter","enhancers","windowIfDefined","window","__REDUX_DEVTOOLS_EXTENSION__","push","createStore","compose","applyMiddleware","configureStore","App","Boolean","location","hostname","match","unregister","navigator","ready","then","registration","i","AlertTitle","AlertMsg","Process_System","AlertIcon","AlertButtonText","ResultDeleteAPI","IsLoadData","response","MSG_Success","fnOnSuccess","fnOther","sStatus","sMsg","nPermission","process_SessionExpire","process_Duplicate","process_Success","process_Error","NoPermission","SwAlert","Success","Warning","lnkToLogin","tempMsg","ResultAPI","DialogConfirm","funcYes","funcNo","Confirm","DialogConfirmDelete","SwAlert_Title","sTitle","Common","sMessage","fnOK","Swal","fire","title","html","confirmButtonText","allowOutsideClick","allowEscapeKey","result","value","Info","icon","close","Error","fnYes","fnNo","text","showCancelButton","confirmButtonColor","cancelButtonColor","showLoaderOnConfirm","preConfirm","Promise","disableButtons","getElementsByClassName","style","display","dismiss","DismissReason","cancel","ConfirmYN","cancelButtonText","getCloseButton","FnBlock_UI","Dispatch","useDispatch","BlockUI","UnBlockUI","lnkToNotPermission","AxiosPost","sWebMetodName","objJSON","fnSuccess","fnError","Async","axios","post","process","res","data","fnAsync","catch","errors","scrollToElementValidate","formID","elByClass","querySelector","querySelectorAll","length","scrollIntoView","behavior","block","el","click","Effect","props","useEffect","formik","submitCount","isValid","onSubmissionError","Encrypt","dataEncrypt","Crypto","AES","encrypt","toString","replace","Decrypt","dataDecrypt","decrypt","enc","Utf8","ParseHtml","val","parse","BackToComponent","lnkBack","elLink","MsgValidate","MsgValidateMaxLength","sField","nMaxLength","resetFromData","formProps","sFild","sValue","setFieldValue","setFieldError","resetFromSubmitData","AxiosPostExportFile","filename","responseType","exportsFileSave","mime","bom","blob","Blob","msSaveBlob","blobURL","URL","createObjectURL","webkitURL","tempLink","createElement","href","setAttribute","download","body","appendChild","setTimeout","removeChild","revokeObjectURL","FormErrors","form","fieldName","externalErrorMessage","touched","Array","isArray","this","displayableError","InputFormItemNotFastLogin","label","name","hint","placeholder","autoFocus","inputProps","autoComplete","disable","errorMessage","required","readonly","size","startAdornment","TextField","id","fullWidth","fontFamily","onChange","event","target","onFocus","setFieldTouched","values","disabled","InputLabelProps","InputProps","readOnly","error","helperText","Component","defaultProps","InputFormItemLogin","useStyles","makeStyles","root","zIndex","avatar","backgroundColor","blue","color","ChangePassword","onClose","open","handleClose","fnInitialDataUser","txtUserID","UserID","txtUserName","UserName","txtCompanyID","CompanyID","isAlert90D","txtOLDPassword","txtNewPassword","txtConfirmPassword","validateUserInfo","yup","shape","matches","when","is","oneOf","Dialog","disableBackdropClick","disableEscapeKeyDown","aria-labelledby","maxWidth","DialogTitle","enableReinitialize","initialValues","validationSchema","onSubmit","obj","nUserID","sUserName","sOLOPassword","sNewPassword","nCompanyID","sController","translate","DialogContent","dividers","position","AccountCircle","DialogActions","onClick","ForgotPassword","fnInitialData","txtUserNameOrEmail","UserNameOrEmail","validateEmailInfo","email","className","fontSize","textAlign","descendingComparator","a","b","orderBy","PerPageOptions","getComparator","order","stableSort","array","comparator","stabilizedThis","map","index","sort","useToolbarStyles","theme","createStyles","paddingLeft","spacing","paddingRight","marginTop","highlight","palette","secondary","main","lighten","light","primary","dark","flex","width","paper","marginBottom","table","minWidth","visuallyHidden","border","clip","height","margin","overflow","padding","top","StyledTableRow","withStyles","TableRow","StyledTable","Table","StyledTableCell","paddingBottom","paddingTop","head","common","black","verticalAlign","TableCell","StyledTableHead","TableHead","StyledTableBody","TableBody","MuiTableTableToolbar","classes","numSelected","toobar","Toolbar","clsx","children","MuiTable","aria-label","StyledNoData","rowNoData","MuiRowNoData","colSpan","key","StyledTable_Front","StyledTableHead_Front","StyledTableBody_Front","StyledTableRow_Front","StyledTableCell_Front","opacity","DialogFroala","DialogContentText","model","en","add","saveScore","draft","submit","approve","reject","or","reset","save","view","destroy","search","edit","loadData","addRecord","addTeamMember","addPresenter","remove","new","exportExcel","exportPDF","qualify","noDataToExport","import","discard","ok","yes","no","pause","areYouSure","mustSelectARow","start","end","confirm","Hint","Duplicate","SaveComplete","DeleteComplete","iconEdit","iconView","iconDelete","committee","comment","tag","tagSubmitted","tagSaveDraft","tagError","app","system","tf","km","ia","entities","admin","menutitle","technicalforum","abstractsubmission","fields","topiclabel","discipline","submissionType","projectType","MemberType","Name","DepOrg","PositionTeam","employeeid","firstname","department","fullthainame","asset","mobile","years","sYear","education","experirence","surname","SEMAIL","sTelNo","sTopic","cStatus","sRemark","sUrl","cQualified","cConfirmAbstract","cConfirmAword","cConfirmPresent","cConfirmPoster","SDISCIPLINEID","nWeigth","sCategory","sTotalSCORE","criteria","sMinSCORE","sRecID","nOrder","nWeigths","dPresentDate","sVenueID","sScheduleName","sStartTime","SCODE","cStatusSelection","sAwardID","IASubnission","submissiionInnovationAward","select","officenumber","company","roleteam","iasubtype1","iasubtype2","iasubtype3","KMAward","FunctionGroup","Division","Deparment","CoP","section","Position","Phone","Mobile","Email","Url","SubmissionType","Description","Peroid","PeroidStart","PeroidEnd","SubCriteria","Evidence","Chanel","Benefit","BenefitType","BenefitValue","CourseAudience","Frequency","KnowledgeTopic","HowToWork","submissiontable","Status","Code","KMscreeningtable","KMscreening","KMPrinting","KMAppointmentTable","KMAppointment","Venue","Presentation","PresentationStart","PresentationEnd","PresentationReceived","Committee","Comment","AllowEdit","ConfirmPresent","KMAScoring","KMJudgingTable","KMJudging","MasterData","TechnicalForum","announcement","sAnnouncement","sHeadline","cPin","awardType","sDiscipline","sSubmissionType","sOrder","sAwardName","emailTemplate","sEmailStep","sDescription","sFrom","cbTo","cbCC","sSubject","sDetail","sMoreCC","disiplineYear","scoringYear","sCriteriaType","sCriteria","sMinScore","sMaxScore","sWeigth","usefulLink","sDisplayName","sURL","timeFrame","EventName1","EventName2","EventName3","EventName4","EventName5","EventDate1","EventDate2","EventDate3","EventDate4","EventDate5","EventTime","venue","sRoomName","guideline","sDocumentName","userPermission","sEmpID","sName","sSurname","sEmail","sMobileNumber","sPosition","sDivision","sSection","sDepartment","sUsername","sPassword","sDisciplince","EPSpirit","submissionform","Requester","RequestFor","ProjectTitle","EventDate","sEmpName","sFunctionGroup","sDivOrDept","sCompany","sMobile","sContribution","sProjectLeaderName","sPhoneLeader","sMobileLeader","sLocationLeader","sPresenterName1","sPhonePresenter1","sMobilePresenter1","sLocationPresenter1","sPresenterName2","sPhonePresenter2","sMobilePresenter2","sLocationPresenter2","auth","profile","success","createAnAccount","rememberMe","forgotPassword","signin","signup","signout","alreadyHaveAnAccount","signinWithAnotherAccount","emailUnverified","message","emptyPermissions","passwordResetEmail","passwordReset","emailAddressVerificationEmail","verificationEmailSuccess","passwordResetEmailSuccess","passwordResetSuccess","verifyEmail","settings","menu","shade","backToHome","403","404","500","forbidden","validation","defaultErrorMessage","mixed","default","notOneOf","notType","path","originalValue","string","min","max","url","trim","lowercase","uppercase","selected","number","lessThan","moreThan","notEqual","positive","negative","integer","date","boolean","object","noUnknown","fileUploader","upload","image","formats","importer","line","status","pending","imported","total","importedMessage","noNavigateAwayMessage","completed","someErrors","allErrors","downloadTemplate","list","discardConfirm","invalidFileEmpty","invalidFileExcel","invalidFileUpload","importHashRequired","importHashExistent","autocomplete","loading","noOptions","imagesViewer","noImage","noData","pagination","labelDisplayedRows","labelRowsPerPage","currentLanguageCode","languages","dictionary","dateFns","init","arg","moment","locale","localStorage","setItem","getLanguage","setYupLocale","setLanguageCode","getItem","getLanguageCode","format","args","console","i18n","_get","styles","flexGrow","input","minHeight","valueContainer","flexWrap","alignItems","chip","chipFocused","emphasize","grey","noOptionsMessage","singleValue","left","bottom","right","divider","inputComponent","inputRef","ref","components","Control","innerProps","innerRef","selectProps","TextFieldProps","Menu","Paper","square","MultiValue","Chip","tabIndex","isFocused","onDelete","removeProps","deleteIcon","NoOptionsMessage","Typography","Option","MenuItem","component","fontWeight","isSelected","isDisabled","Placeholder","SingleValue","ValueContainer","SelectFormItemNotFastLogin","makeAnimated","mode","valueMultiple","valueOne","options","find","option","handleSelect","handleSelectMultiple","handleSelectOne","onChangeMultiSelect","filter","onSetSelect","allValues","isClearable","isInvalid","controlStyles","container","provided","control","borderColor","dropdownIndicator","base","cursor","indicatorsContainer","closeMenuOnSelect","materialUiComponents","shrink","inputId","isMulti","loadingMessage","SelectFormItemLogin","materialUiStyles","items","src","bg1","Login","useState","activeIndex","setActiveIndex","animating","setAnimating","lstCompany","setlstCompany","Action_","sEvdete_","sEvreport_","fromMailData","setfromMailData","slides","item","CarouselItem","onExiting","onExited","txtPassword","txtCompany","CheckSession","params","URLSearchParams","ID","get","sAction","sEvdete","sEvreport","ke","pathname","onLoginAD","lstCompyne","srt","responseCr","arr","LINQ","lstGroupUser","ToList","Any","nGroupID","React","setOpen","ChangePasswordData","setChangePasswordData","onLogin","isChangePassword","popupChangePasswor","openForgot","setForgotOpen","Forgot_PasswordData","setForgot_PasswordData","popupForgotPassword","EventType","Remark","openContactUs","setOpenContactUs","sNote","setNote","popupRemark","LoadDataContactUs","nID","sContent","FimLogin","useCallback","Button","to","Carousel","next","nextIndex","previous","CarouselIndicators","onClickHandler","newIndex","SimpleDialog","List","ListItem","ListItemAvatar","Avatar","ListItemText","sGroupName","Layout_Front","Props","isVisible","IsopenPage","isSideNav","sFullUserName","sCompanyName","sGroupUserName","lstMenu","lstMenuAll","objMenu","setObjMenu","setdisplay","lstMenuData","Where","w","nLavel","OrderBy","o","nOrderBy","ToArray","setActiveLink","sLink","setIsSideNav","toggle_Mobilemenu","classList","addEventListener","logo","nMenuID","sHeaderName","role","SelectFormItemNotFast","onBlurMultiSelect","handleSelectoBlurMultiSelect","e","menuPortalTarget","variant","blur","SelectFormItem","TimePickerFormItemNotFast","MinTime","minTime","maxTime","handleChange","ampm","autoOk","renderInput","TimePickerFormItem","LocalizationProvider","dateAdapter","DateFnsUtils","CheckboxFormItemNotFast","legend","marginButton","onChangedCallback","formHelperText","FormControl","FormLabel","FormGroup","row","FormControlLabel","Checkbox","checked","FormHelperText","CheckboxFormItem","DatePickerFormItemNotFast","showTime","endAdornment","onCloseCallback","maxDate","DateTimePickerComponent","MobileDateTimePicker","MobileDatePicker","clearable","inputFormat","DatePickerFormItem","BlackTooltip","tooltip","boxShadow","shadows","Tooltip","CheckboxListFormItemNotFast","handleCheck_Check_All","AllowCheckAll","dataProvider","datas","setState","indexOf","splice","CheckAll","handleSelectAll","labelAll","defaultAll","showComment","Grid","xs","md","Fragment","placement","marginLeft","CheckboxListFormItem","test","testaa","TextAreaFormItemNotFast","rows","multiline","TextAreaFormItem","textTransform","demo","wordSpacing","textOverflow","textMsg","UploadFile","multiple","arrData","folder","defaultFileData","isClearFile","ResultClearFile","isView","FileData","setFileData","FileDataErr","setFileDataErr","selectedFile","setselectedFile","selectedFileCompleted","setselectedFileCompleted","sFileType","onUpload","idex","forEach","file","formPayload","FormData","append","baseURL","method","onUploadProgress","progress","loaded","Math","floor","d","sStatusUpload","fi","Max","m","sPath","sSystemFileName","sFileName","sSaveToPath","IsDelete","IsNewFile","random","msg","TableErr","maxHeight","scope","TableCompleted","f","REACT_APP_API_URL_File","IconButton","edge","q","FirstOrDefault","JSON","stringify","files","_size","sizes","log","nSize","pow","CheckFilesize","sType","LF","split","arrFileYupe","toUpperCase","getLNAme","CheckFileType","accept","htmlFor","startIcon","button","buttonSearch","buttonEdite","buttonView","buttonAdd","buttonDelete","ButtonClear","buttonF","buttonExport","MuiButtonSave","MuiButtonConfirm","MuiButtonCancel","MuiButtonAdd","MuiButtonClear","borderRadius","extendedIcon","marginRight","MuiButtonSearch","OtherProps","MuiButtonEdite","MuiButtonView","MuiButtonDelete","MuiIconButtonDelete","arrow","MuiIconButtonEdite","EventColorCompronent","EventColorID","SecurityLevelColorCompronent","levelName","MuiIconButtonItem","rowCount","StyledBadge","badge","background","Badge","badgeContent","MuiIconButtonMessage","MuiIconCheckBoxDelete","checkedIcon","MuiButtonSubmit","MuiButtonCancelFront","MuiButtonApproveFront","MuiButtonEditeFront","MuiButtonViewFront","MuiButtonRejectFront","MuiButtonSaveFront","MuiButtonResend","MuiButtonExport","MuiButtonExportPDF","DialogRemark","isWarning","dateFormat","require","txtNode","FromEventOperation","isShoweTime","setisShoweTime","CheckTimeEndSelect","setCheckTimeEndSelect","lstSubEventTypeData","setlstSubEventType","isLoadSubEventType","isLoad","setOnLoad","lstEventGroup","lstArea","lstEventType","editeData","lstWorkingTime","lstSecurityLevel","Mode","isLevelPass","isSecurityLevelPass","setSecurityLevelPass","nEventID","EventGroup","nEventGroupID","Company","Area","nAreaID","dEventDate","nEventTypeID","SubEventType","nSubEventTypeID","EventTimeStrat","sEventStartTime","Date","EventTimeEnd","sEventEndTime","CheckTimeEnd","cEventNotEnd","WorkingTime","Select","s","sEventDesc","ApproveRemark","sApproveRemark","lstFileData","SecurityLevel","nLevelID","SecurityDescription","sSecurityDesc","nStatus","inFromEventReport","ActionMode","setActionMode","validateOperation","typeError","notRequired","checkDate","Eventdate_","today","dd_now","getDate","mm_now","getMonth","yyyy_now","getFullYear","dateNow_","today_Event","dd_Event","mm_Event","yyyy_Event","GetSubEventType","EventTimeEndControl","RemarkEventType","Node","Label","openLe","setOpenLe","nMode","nPass","sEventDate","nEventColor","onEventType","fl","nSecurityLevelID","qbj","isPass","checkLevel","submitForm","EventApprove","eventID","lstSubEventType","dataEdite","setData","LoadData","EditeData","Operation","StyledInput","DatePickerRangeFormItemNotFast","handleStartChanged","endValue","handleEndChanged","startValue","handleChangeValue","_validateion","setErrors","DateTimePicker","DatePicker","selectDate","startText","endText","startProps","endProps","DatePickerRangeFormItem","AdvanceEventDate","AdvanceReport","CreateReport","setlstEventGroup","setlstEventType","lstCompyneCSR","setCompyneCSR","setlstArea","setSecurityLevel","setlstWorkingTime","CompanySelect","setCompanySelect","EventGroupSelect","setEventGroupSelect","setAreaSelect","EventDataSelect","setEventDataSelect","FileData_","setFileData_","lstEventReport","setlstEventReport","isEdite","setisEdite","setisClearFile","lstEventTypeMaster","setlstEventTypeMaster","lstEventTypeMaster_Sub","setlstEventTypeMaster_Sub","lstWorkingTimeMaster","setlstWorkingTimeMaster","cAdvanceReport","setcAdvanceReport","ShowAdvanceReport","setShowAdvanceReport","maxDateEv","setmaxDateEv","resultGetAdvanceReport","setresultGetAdvanceReport","setFromEventReport","validateCSR","nHearID","validateSecurity","resetFrom","sMode","lstAreaID","lstSubAreaID","objTAdvanceReport","IsAdvanceReport","dAdvanceEndDate","lstDate","lstAreaMaster","lstDefaultArea","nDefaultEventGroup","nDefaultCompany","nWorkingTimeID","Distinct","WorkingTimeData","setEventType","loadListEventReport","EventGroupSelect_","CompanySelect_","EventDataSelect_","LoadPrevious","GetEventPrevious","isPreviousData","GroupID","EvDate_","lstEventTypeMaster_","lID","EvDate","re","neDate","Contains","nUseAreaID","nCompany","lstEv","lstArea_","IsFirst","ForEach","lstEv_","stData_","sEventName","Intersect","stData","nOrderID","sde","EventTypeControl","SubEventTypeControl","isSh","lstWorkingTimeMaster_","AreaID","lstData","g","WID","WName","sWorKingTileName","sAreaName","join","WorkingTimeControl","DescriptionControl","SecurityControl","isShow","EventID","EventApproveReport","TableEventReportControl","Card","CardBody","nEventReportID","sSecurityLevelColor","sSecurityLevelName","nEventColorID","sEventTypeName","sReportby","dCreateDate","sStatusName","isDelete","ColEventDate","ColCheckEventDate","Accordion","AccordionSummary","sAdvanceStartDate","sAdvanceEndDate","GetAdvanceReport","nEventGrupID","ThenBy","t","nSubOrder","fr","validateField","justify","config","charCounterCount","toolbarButtons","moreText","buttons","moreParagraph","moreRich","moreMisc","align","buttonsVisible","imageUploadParam","imageUploadURL","imageUploadParams","imageUploadMethod","imageMaxSize","fileUploadParam","fileUploadURL","fileUploadParams","fileUploadMethod","fileMaxSize","fileAllowedTypes","videoUploadParam","videoUploadURL","videoUploadParams","videoUploadMethod","ContactUs","EditorState","createEmpty","editorState","setEditorState","EditID","setEditID","sContactUs","setContactUs","isCorparate","setCorparate","onModelChange","EventTodayOperation","panel","onApprove","expanded","lstEventOperation","page","setPage","rowsPerPage","setRowsPerPage","setOrder","setOrderBy","Pagination","TablePagination","rowsPerPageOptions","onChangePage","newPage","onChangeRowsPerPage","parseInt","createSortHandler","property","handleRequestSort","newExpanded","expandIcon","TableContainer","numeric","disablePadding","isSort","headCell","TableSortLabel","active","direction","slice","isApprover","EventTodaySecurity","lstEventSecurity","EventTodayCSR","lstEventCSR","EventToday","setlstEventOperation","setlstEventCSR","setlstEventSecurity","dReportDate","setReport","openTab","setopenTab","lstEventGroupID","setlstEventGroupID","lstEventGoupID","EventTodayOperationUI","handleShew","EventTodayCSRUI","EventTodaySecurityUI","menuPortal","SelectNoForm","defaultInputValue","defaultValue","TextFieldInputFreeText","maxLength","onBlur","onBlured","DatePickerRangeNoForm","handleDateChange","setselectDate","EventRecord","rowsData","setRowData","lstLavel","setMasterData","setDate","setSelectDate","EventGrupe","Compyne","Lavel","TextSerch","selectData","setSelectData","setMode","setShowExport","sDefallGroupEvent","sDefallCompany","sDefallArea","sDefallEventType","getArea","getEventType","lstEventData","GetData","GetExportData","fileName","setSelected","Fiter","lg","isSearchable","x","indeterminate","newSelecteds","n","isItemSelected","labelId","selectedIndex","newSelected","concat","handleClick","sEventGroupName","isApprove","am4core","am4themes_animated","am4themes_kelly","Charts_ByEventType","startDate","endDate","exportImg","nameCharts","dAsof","setConwidtht","chartData","lstByEventType","nEventOrderID","objData","nEventTypeName","lstAreaDetail","nCount","objDataTotalNot","lstNotReport","chart","am4charts","colors","responsive","enabled","categoryAxis","xAxes","dataFields","category","renderer","grid","template","minGridDistance","valueAxis","yAxes","lstAreaAll","series","valueY","categoryX","stacked","columns","tooltipText","labels","events","on","ev","axis","pixelWidth","endIndex","startIndex","rotation","horizontalCenter","verticalCenter","contentAlign","exporting","getImage","justifyContent","CheckboxListNoForm","onSelect","setchecked","Charts_SummaryByEventType","SelectAreaSumary","AreaData","setAreaData","AreaSelect","createCharts","AreaSelect_","arrS","nCont","y","nCountDay","pieSeries","ticks","alignLabels","adapter","radius","dataItem","percent","fill","dataItems","getIndex","CheckboxListNoForm_c","Chats_ReportStatistics","valueAxisMax","ReportCount","nStatisticsRepor","NotReportCount","nStatisticsNotRepor","bullet","bullets","interactionsEnabled","dy","series2","bullet2","truncate","Chats_Report_Security","lstTableReporSecurity","Conwidtht","lstByEventType_Security","nLevent1_Count","nLevent2_Count","nLevent3_Count","nLevent4_Count","strokeWidth","series3","series4","bordered","nCompanyOrderID","nAreaOrderID","nSubAreaOrderID","nLavel1","nLavel2","nLavel3","nLavel4","nNormal","nAbnormal","nNotReport","Sum","Report","setlstByEventType","lstTableSummaryEventReport","setlTableSummaryEventReport","lstTableEventType","setlTableEventType","lstTableSummaryEventReportDatail","setlTableSummaryEventReportDatail","setllstTableReporSecurity","selectEventGroup","setselectEventGroup","lstCompanyCSR","lstEventTypeData","sImgChartsEvType","setImgCharts","sImgChartsSumEvType","setImgChartsSumEvType","sImgChartsSecurity","setImgChartsSecurity","sImgChartsStatistics","setImgChartsStatistics","SelectAreaStatistics","setSelectAreaStatistics","cFilterData","setcFilterData","isShoweExport","setisShoweExport","nDefaultCompanyID","dDefaultStartDate","dDefaultEndDate","sStartDate","sEndDate","cByEventType","cResoltByTable","setInterval","clearInterval","CharteByEventType","Charts_SummaryByEvent","Chats_Statistics","Charts_ReportSecurity","LoadAear","lstAreaSelect","inex","nColorID","arrTotallCout","Count","arrTotallEID","ex","inexEX","nCout","nEID","ReportAbnormal","sTiter","SetsTiter","sImgChartsCSR","setsImgChartsCSR","sImgChartsOperation","setsImgChartsOperation","setsImgChartsSecurity","lstReportDetail","setlstReportDetail","cObjData","SetcObjData","AbnormalDate","CharteByEventType_O","EventGroupID","CharteByEventType_C","CharteByEventType_S","TableSummart","pro","arrTableEventType","arrTableSummaryEventReport","arrTableSummaryEventReportDatail","nOrderComID","nOrderAreaID","nOrderSunAreaID","TableDetail","getHearTable","headCellsMode_1","nEventTypeOrderID","sAreaAndSubAreaName","sRepoterName","sReportingDate","sMode1","defaultExpanded","aria-controls","AccordionDetails","nEventGroup","SetIshow","lstByEventTypeDataDetail","maxPrecision","WeeklyReportComponent","cData","lstEeventRepottData","setlstEeventRepottData","lstSummaryReportData","headCellsMode_2","headCellsMode_3","nAreaCount","nNotRepor","nEventTypeColorID","ReportWeekly","setcData","sDateTo","setDateTo","setdAsof","WeeklyDate","OWeeklyReport","SWeeklyReport","CWeeklyReport","pBody","Logout","sm","Divider","origin","LoginBypass","LoginEP","OnGetConfigAzueAD","OnSetADAzure","adalConfig","clientId","sClientId","redirectUri","sRedirectUri","instance","sInstance","tenant","sTenantId","popUp","cacheLocation","sCacheLocation","endpoints","api","authContext","AuthenticationContext","getToken","getCachedToken","user","jwt_decode","upn","sSearch","repat","removeItem","runWithAdal","loginAction","MonthlyComponent","sDate","setcFilterDataEx","setImgChartsEx","setImgChartsSumEvTypeEx","setImgChartsSecurityEx","setImgChartsStatisticsEx","setlTableEventTypeEx","setlTableSummaryEventReportEx","setlTableSummaryEventReportDatailEx","setllstTableReporSecurityEx","setSelectAreaStatisticsEx","cAsof","ReportMonthly","cDataO","setcDataO","cDataS","setcDataS","cDataC","setcDataC","selectCompany","setSelectCompany","sExportCompany","setExportCompany","sMonth","setcAsof","cFilterDataO","setcFilterDataO","sImgChartsEvTypeO","setImgChartsO","sImgChartsSumEvTypeO","setImgChartsSumEvTypeO","sImgChartsSecurityO","setImgChartsSecurityO","sImgChartsStatisticsO","setImgChartsStatisticsO","lstTableEventTypeO","setlTableEventTypeO","lstTableSummaryEventReportO","setlTableSummaryEventReportO","lstTableSummaryEventReportDatailO","setlTableSummaryEventReportDatailO","lstTableReporSecurityO","setllstTableReporSecurityO","SelectAreaStatisticsO","setSelectAreaStatisticsO","cFilterDataS","setcFilterDataS","sImgChartsEvTypeS","setImgChartsS","sImgChartsSumEvTypeS","setImgChartsSumEvTypeS","sImgChartsSecurityS","setImgChartsSecurityS","sImgChartsStatisticsS","setImgChartsStatisticsS","lstTableEventTypeS","setlTableEventTypeS","lstTableSummaryEventReportS","setlTableSummaryEventReportS","lstTableSummaryEventReportDatailS","setlTableSummaryEventReportDatailS","lstTableReporSecurityS","setllstTableReporSecurityS","SelectAreaStatisticsS","setSelectAreaStatisticsS","cFilterDataC","setcFilterDataC","sImgChartsEvTypeC","setImgChartsC","sImgChartsSumEvTypeC","setImgChartsSumEvTypeC","sImgChartsSecurityC","setImgChartsSecurityC","sImgChartsStatisticsC","setImgChartsStatisticsC","lstTableEventTypeC","setlTableEventTypeC","lstTableSummaryEventReportC","setlTableSummaryEventReportC","lstTableSummaryEventReportDatailC","setlTableSummaryEventReportDatailC","lstTableReporSecurityC","setllstTableReporSecurityC","SelectAreaStatisticsC","setSelectAreaStatisticsC","LoadDataOperation","LoadDataSecurity","LoadDataCSR","OMonthlyReport","SMonthlyReport","CMonthlyReport","objOperation","sImgsImgChartsEvType","lstSelectAreaID","sAsof","objSecurity","objCSR","lstExport","Charts_Stacked_AreaByYear","isClassName","useLayoutEffect","lstYearlyData","colorList","strokeOpacity","stroke","baseGrid","titles","create","sComArea","wrap","lstEventTypeCriteria","nOrder3","field","nColor","valueX","categoryY","labelBullet","locationX","createSeries","ReportYearly","SetStartDate","SetEndDate","lstImgChartStacked","SetImgChartStacked","arrYear","setarrYear","nYear","dnow","arrY","OrderByDescending","nOr","lstGraph","lstTYearlyData","Yesr","GetAear_","setObjExport","Chart_Stacked_Year","nOrderID_1","nOrderID_2","sImg","EventReportPlantOperation","lstCompanyOperation","getEvevtType","getData","headCells","Header","BodyData","dUpdate","EventReportPlantSecurity","lstCompanySecurity","EventReportCSR","DailyMonitoringReport","lstEventGrupID","EventReportPlantSecurity_","EventReportPlantOperation_","EventReportCSR_","Home","DialogComWorkTime","hover","nWorkingTime","sWorkingTime","sEndTime","DialogComEventType","DialogSubsidary","dUpdateDate","sTxtSearch","setsTxtSearch","lstWorkTime","setlstWorkTime","setlstEventData","lstSubsidary","setlstSubsidary","setPermission","setCompany","setCompanyID","lstOrder","setlstOrder","SearchCompanyID","n_Permission","ExportExcel","handleSelectAllClick","nEditID","lstCompanyID","openEvent","setOpenEvent","openSubsidary","setOpenSubsidary","aria-checked","from","sTo","sTableName","sHeadNameCompany","SubType","sUpdateBy","InputFormItemNotFast","InputFormItem","GreenRadio","Radio","RadioFormItemNotFast","RadioGroup","RadioFormItem","ButtonMode","fnInitialDataCompany","sDomain","EventTimeStart","sTime","eTime","NotificationStatus","StatusWorkTime","StatusCompanyAdmin","sInactiveRemark","sInactiveWorkTimeRemark","sInactiveCompanyAdminRemark","sCheckBoxHead","cCSR","cSubsidiary","sEventGroup","sEventType","nIDnWorkingTime","CreateCompany","forwardRef","lstDDLCompany","SetDDlCompany","SetDDlCompanyCSR","SetlstOrder","arrStatus","isStatus_Inactive","setStatusInactive","isSubsidiary","setSubsidiary","isOverDay","setOverDay","arrStatusWorkTime","isStatusWorkTime_Inactive","setStatusWorkTimeInactive","SetEventGroup","lstEventGroupCSR","SetEventGroupCSR","setWorkTime","setnMaxID","lstDDLEventType","SetDDLEventType","setEventData","arrEventTypeSelect","setEventTypeSelect","fnInitial_DataCompany","setInitialDataCompany","setModeEdite","isCSR","setStateCSR","isEditWorkTimeID","setEditWorkTimeID","validateCompany","SourceEventType","SetSouceEventType","setView","sControllesCompany","nCompanyName","lstDDLCompanyCSR","arrEventType","CompanyData","nHeadCompany","sNotificationStatus","sNoteInActive","ValuesCSR","Valuessubsidary","nMaxID","validateWorkTime","EventTimeStartControl","fromProps","AddWorkTime","defaultvalue","onClearFromWorkTime","WorkTimeTable","cDelWorkTime","lst","cActive","editWorkTime","isDelect","isNew","validateEventType","AddEventData","qEventType","onClearFromEventType","EvenTypeTable","lastID","dEventTimeStart","dEventTimeEnd","sStart","sEnd","sStartHours","getHours","padStart","sStartMinutes","getMinutes","sEndtHours","sEndMinutes","timeset","isCheckDup","toLowerCase","nEventGroupName","nComEventID","ispass","Number","DialogSubArea","lstSubOrder","SetlstSubOrder","SetlstData","SetnID","nHeadreaID","lstSubArea","sApprove","AreaStructure","setEventGroup","setEventGroupID","setlstSubAreaType","allowEditOrder","setallowEditOrder","SearchText","SearchEventGroupID","nSubID","Create_AreaStructure","Hear","Sub","isAddSub","isEditeSub","Status_Inactive","setStatus_Inactive","setWorkingTime","lstSubAreaData","setlstSubAreaData","WorkingTimeSelect","EventTypeSelect","SubWorkingTimeSelect","objDataItem","setobjDataItem","nAreaHeadID","cRequireApprove","subAreaID","subAreaName","subcRequireApprove","subcActive","subsNoteInActive","_InitialDataArea","setInitialArea","validateArea","validateAreaSub","EditeAreaCreateData","lstWorkingTimeID","lstEventTypeID","GetWorkTimeAndEvent","getListOrder","ListWorkingTimes","lstEventTypes","SelectWorkingTime","SelectEventType","sEventGroupNamr","AreaHear","handleSelectAllClick_sub","AreaSub","handleClick_sub","SubAreaData","cDel","lstDataWorkTime","lstTime","GetNameWorkTime","editeSubArea","onClearFromSumEventType","latSub","up","DialogSubEventType","nEventTypeHeadID","lstSubEvent","Intl","DateTimeFormat","year","month","day","sTestSearch","lstSuData","Create_EventType","arrEventColour","setarrEventColour","setisAddSub","isStatus_Inactive_sub","setStatusInactive_sub","setisView","EventTypeID","EventColour","EventTypeName","EventTypeSubName","Note","InactiveRemark","SubEventTypeID","SubEventTypeName","SubEventTypeSubName","SubNote","SubStatus","subInactiveRemark","subcAdvanceReport","_InitialDataEventType","setInitialEventType","validateUser","validateUserSubEventType","lstEventColor","EventTypeData","sEventTypeSubName","lstSubEventTtype","pushSubOrder","isEditeSubEventType","setisEditeSubEventType","AddSubType","SubTypeTeble","editeSubEventYpe","DialogComponents","ReceiverGroup","lstCompanyName","setlstCompanyName","lstEvenyTypeName","setlstEvenyTypeName","lstMember","setlstMember","nReceiverGroupID","lstReceiverGroupID","Title","popupShow","lstGroupName","sReceiverGroupName","dUpdata","ListCompanyName","ListEvenyTypeName","TableMember","sCompynyName","RadioGroupNoForm","Create_ReceiverGroup","arrSearchby","lstwithCompany","setlstwithCompany","lstMemberSearchby","setlstMemberSearchby","lstMemberData","setlstMemberData","lstwithArea","setlstwithArea","arrSelectMember","SelectCompynewithArea","SelectEventGroupwithArea","lstCSRAdminID","setlstCSRAdminID","isCSRAreaAdmin","setisCSRAreaAdmin","nRecieverGroupID","sRecieverGroupName","sMemberCompany","sMemberSearchby","sMemberTextSearch","sWithAreaEventGroup","sWithAreaCompany","sWithAreaArea","_InitialDataReceiverGroup","setInitialReceiverGroup","validateReceiverGroup","validateMember","validateWithArea","isCSRAdmin","lstAreaData","FromReceiverGroupHeader","TableAddMember","sEmpCode","onClearFromMember","TableMemberList","FromAddMember","qUser","sCom","nOrderCompany","lstMemberData_","SaveMember","deleteWithArea","TableWithArea","FromwithArea","xl","onClearFromWithArea","nSearchby","sSearchText","sEv","qCom","se","nOrdarEventGroup","nOrdarArea","lstwithArea_","TimePickerNoForm","msgError","onValidate","defaultValidate","isVlidate","setVlidate","sMsgError","setMsgError","Object","prototype","call","isNaN","getTime","LogMonitoring","sentDate","countSentAll","countSent","countNot","conData","setconData","lstGroupInUser","setlstGroupInUser","lstReceiverGroup","setlstReceiverGroup","isShowResent","setisShowResent","RecieverName","inFromLogEventReport","Mode_","EventDate_","lstCompanySelect","lstGroupSelect","dSentDate","nCountSentAll","nCountSent","nCountNotSent","isResent","sGroupNate","nReceiverID","sReceiverName","sResetByName","dLastDate","onResentMail_","MailSetupMonitoring","setexpanded","handleChange_brac","lstMailSutup","setLstMailSutup","setEdite","lstMailSetup","SetupMail","nEventType","sEventTime","isValidateEventTime","sFinalTime","isValidateFinalTime","UpdateBy","saveSutupMail","UserPermission","setGroupUser","setCompanySearch","nGroupUser","setGroupUserSearch","lstUser","sGrupUser","setlstData","lstStatus","setlstStatus","setsMode","setnID","FormStatus","NotiTime","validate","nNotiID","lstID","nDay","sDay","isInteger","DialogCompanyNoti","lstDay","setlstDay","lstMonth","setlstMonth","arrMonth","arrCompany","arrDay","sDayMonth","lstPopup","lstSelectCompany","SetAdvanceEventDays","DatePickerNoForm","minDate","LogExport","lstExportType","setlstExportType","sExportType","setsExportType","dDateStart","setdDateStart","dDateEnd","setdDateEnd","dDateNow","dfilterMinDate","setdfilterMinDate","sUser","Filter","AutocompleteEmployee","setValue","inputValue","setInputValue","setOptions","setloaded","Autocomplete","getOptionLabel","filterOptions","includeInputInList","filterSelectedOptions","freeSolo","blurOnSelect","newValue","onInputChange","newInputValue","CircularProgress","renderOption","fnInitialDataUser_Fil","arrGroupUser","sEmployeeID","sFName","sLName","sOrgName","sTel","sConfirmPassword","nEmployeeTypeID","tableIcons","Check","Clear","ResetSearch","Search","SortArrow","DetailPanel","Create_UserPermission","SetGroupUser","SetCompany","arrEmpType","arrGroupUserSelect","setGroupUserSelect","isModeEdite","lstOperation","setOperationList","lstCSR","setCSRList","lstSecurity","setSecurityList","lstAdminAresOperation","setAdminAresOperationList","lstAdminAresCSR","setAdminAresCSRList","lstAdminAresSecurity","setAdminAresSecurityList","lstCSRAdminAresCSR","setCSRAdminAresCSRList","lstApprover","setApproverList","setInitialDataUser","setUserID","setUserTypeID","lstMenuPermission","SetMenuPermission","lstOperationSelect","setOperationSelect","lstCSRSelect","setCSRSelect","lstSecuritySelect","setSecuritySelect","lstApproveSelect","setApproveSelect","lstOperationSelect_AdminArea","setlstOperationSelect_AdminArea","lstSecuritySelect_AdminArea","setlstSecuritySelect_AdminArea","lstCSRSelect_AdminArea","setlstCSRSelect_AdminArea","lstCSRSelect_CSRAdminArea","setlstCSRSelect_CSRAdminArea","lstCompanyPIS","setlstCompanyPIS","isPIS","setisPIS","isAD","setiAD","isCorporateAdmin","setisCorporateAdmin","cPermission","lstGropUser","userData","lstOperation_AdminArea","lstCSR_AdminArea","lstSecurity_AdminArea","lstCSR_CSRAdminArea","tableData","lstAdminAreaOperation","lstAdminAreaSecurity","lstAdminAreaCSR","lstCSRAdmin","resetPasswork","Operation_fragment","icons","parentChildData","nHeadAreaID","selection","paging","showSelectAllCheckbox","selectionProps","rowData","onSelectionChange","SetOperationSelectData","localization","toolbar","nRowsSelected","header","actions","emptyDataSourceMessage","filterRow","filterTooltip","CSR_fragment","SetCSRSelectData","Security_fragment","SetSecuritySelectData","Approver_fragment","SetApproverSelectData","AdminArea_Operation_fragment","SetOperationSelectData_AdminArea","AdminArea_Security_fragment","SetSecuritySelectData_AdminArea","AdminArea_CSR_fragment","SetCSRSelectData_AdminArea","CSRAdminArea_CSR_fragment","SetCSRSelectData_CSRAdminArea","GroupUser","element","getPIS","UserTypeID_","pis","SetMenuRow","SetCell","sMenuName","MenuPermissionTable","StatusUSer","setExpanded","handleChangeTab","Reletion","expandedAdminArea","setExpandedAdminArea","handleChangeTab_AdminArea","AreaAdmin","CSRAreaAdmin","Approver","EmployeeUser","UserContract","isCheck","pass","emails","selectedValue","Layout_MP_Back","setSelectedValue","toggleMobilemenu","sActive","linq","nHeaderID","wheelSpeed","arrMenuLabel","toggleMenu","sIcon","setActiveManuName","ImportUserData","lstError","setlstError","uploadDB","onUploadReceiver","uploadDB_Receiver","dara","nRowID","sCol1","Manuel","TestSentMail","txtEmailTo","txtEmailFrom","txtsmtpmail","txtport","txtmessage","onSentMail","IsComplete","sErrorMSG","sentSystem","FimSentMail","TaskDailyMail","modalManual","setModalManual","formTaskPowerShell","TestPIS","txtConnectionStrings","onSentTest","onSentTestinCompany","comID","FimSentPIS","withClearCache","ClearCacheComponent","isLatestBuildDate","setIsLatestBuildDate","fetch","json","meta","latestDate","currentDate","momLatestDateTime","momCurrentDateTime","isAfter","buildDateGreaterThan","buildDate","packageJson","refreshCacheAndReload","caches","keys","names","delete","reload","unblock","loader","Loader","lstRoute","exact","layout","NotificationTime","NotificationCompany"],"mappings":"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","file":"static/js/main.1eb4c8b9.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/1.7f60efe6.png\";","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport App from './App';\r\nimport * as serviceWorker from './registerServiceWorker';\r\n\r\nReactDOM.render(\r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();","import { Action, Reducer } from 'redux';\r\nimport { AppThunkAction } from './';\r\n\r\n// -----------------\r\n// STATE - This defines the type of data maintained in the Redux store.\r\n\r\nexport interface WeatherForecastsState {\r\n isLoading: boolean;\r\n startDateIndex?: number;\r\n forecasts: WeatherForecast[];\r\n}\r\n\r\nexport interface WeatherForecast {\r\n date: string;\r\n temperatureC: number;\r\n temperatureF: number;\r\n summary: string;\r\n}\r\n\r\n// -----------------\r\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\r\n// They do not themselves have any side-effects; they just describe something that is going to happen.\r\n\r\ninterface RequestWeatherForecastsAction {\r\n type: 'REQUEST_WEATHER_FORECASTS';\r\n startDateIndex: number;\r\n}\r\n\r\ninterface ReceiveWeatherForecastsAction {\r\n type: 'RECEIVE_WEATHER_FORECASTS';\r\n startDateIndex: number;\r\n forecasts: WeatherForecast[];\r\n}\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\ntype KnownAction = RequestWeatherForecastsAction | ReceiveWeatherForecastsAction;\r\n\r\n// ----------------\r\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\r\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\r\n\r\nexport const actionCreators = {\r\n requestWeatherForecasts: (startDateIndex: number): AppThunkAction => (dispatch, getState) => {\r\n // Only load data if it's something we don't already have (and are not already loading)\r\n const appState = getState();\r\n if (appState && appState.weatherForecasts && startDateIndex !== appState.weatherForecasts.startDateIndex) {\r\n fetch(`weatherforecast`)\r\n .then(response => response.json() as Promise)\r\n .then(data => {\r\n dispatch({ type: 'RECEIVE_WEATHER_FORECASTS', startDateIndex: startDateIndex, forecasts: data });\r\n });\r\n\r\n dispatch({ type: 'REQUEST_WEATHER_FORECASTS', startDateIndex: startDateIndex });\r\n }\r\n }\r\n};\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nconst unloadedState: WeatherForecastsState = { forecasts: [], isLoading: false };\r\n\r\nexport const reducer: Reducer = (state: WeatherForecastsState | undefined, incomingAction: Action): WeatherForecastsState => {\r\n if (state === undefined) {\r\n return unloadedState;\r\n }\r\n\r\n const action = incomingAction as KnownAction;\r\n switch (action.type) {\r\n case 'REQUEST_WEATHER_FORECASTS':\r\n return {\r\n startDateIndex: action.startDateIndex,\r\n forecasts: state.forecasts,\r\n isLoading: true\r\n };\r\n case 'RECEIVE_WEATHER_FORECASTS':\r\n // Only accept the incoming data if it matches the most recent request. This ensures we correctly\r\n // handle out-of-order responses.\r\n if (action.startDateIndex === state.startDateIndex) {\r\n return {\r\n startDateIndex: action.startDateIndex,\r\n forecasts: action.forecasts,\r\n isLoading: false\r\n };\r\n }\r\n break;\r\n }\r\n\r\n return state;\r\n};\r\n","import * as WeatherForecasts from './WeatherForecasts';\r\nimport * as Counter from './Counter';\r\n\r\n// The top-level state object\r\nexport interface ApplicationState {\r\n counter: Counter.CounterState | undefined;\r\n weatherForecasts: WeatherForecasts.WeatherForecastsState | undefined;\r\n}\r\n\r\n// Whenever an action is dispatched, Redux will update each top-level application state property using\r\n// the reducer with the matching name. It's important that the names match exactly, and that the reducer\r\n// acts on the corresponding ApplicationState property type.\r\nexport const reducers = {\r\n counter: Counter.reducer,\r\n weatherForecasts: WeatherForecasts.reducer\r\n};\r\n\r\n// This type can be used as a hint on action creators so that its 'dispatch' and 'getState' params are\r\n// correctly typed to match your store.\r\nexport interface AppThunkAction {\r\n (dispatch: (action: TAction) => void, getState: () => ApplicationState): void;\r\n}\r\n","import { Action, Reducer } from 'redux';\r\n\r\n// -----------------\r\n// STATE - This defines the type of data maintained in the Redux store.\r\n\r\nexport interface CounterState {\r\n count: number;\r\n}\r\n\r\n// -----------------\r\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\r\n// They do not themselves have any side-effects; they just describe something that is going to happen.\r\n// Use @typeName and isActionType for type detection that works even after serialization/deserialization.\r\n\r\nexport interface IncrementCountAction { type: 'INCREMENT_COUNT' }\r\nexport interface DecrementCountAction { type: 'DECREMENT_COUNT' }\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\nexport type KnownAction = IncrementCountAction | DecrementCountAction;\r\n\r\n// ----------------\r\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\r\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\r\n\r\nexport const actionCreators = {\r\n increment: () => ({ type: 'INCREMENT_COUNT' } as IncrementCountAction),\r\n decrement: () => ({ type: 'DECREMENT_COUNT' } as DecrementCountAction)\r\n};\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nexport const reducer: Reducer = (state: CounterState | undefined, incomingAction: Action): CounterState => {\r\n if (state === undefined) {\r\n return { count: 0 };\r\n }\r\n\r\n const action = incomingAction as KnownAction;\r\n switch (action.type) {\r\n case 'INCREMENT_COUNT':\r\n return { count: state.count + 1 };\r\n case 'DECREMENT_COUNT':\r\n return { count: state.count - 1 };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import \"bootstrap/dist/css/bootstrap.css\";\r\n\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { Provider } from \"react-redux\";\r\nimport { ConnectedRouter } from \"connected-react-router\";\r\nimport { createBrowserHistory } from \"history\";\r\nimport configureStore from \"./store/configureStore\";\r\nimport App from \"./App\";\r\nimport * as serviceWorker from \"./registerServiceWorker\";\r\nimport \"react-app-polyfill/ie11\";\r\nimport \"react-app-polyfill/stable\";\r\n//import \"antd/dist/antd.min.css\";\r\n//import \"antd/dist/antd.js\";\r\n//import \"antd/dist/antd.min.js\";\r\n// Create browser history to use in the Redux store\r\n\r\n\r\nconst baseUrl = document\r\n .getElementsByTagName(\"base\")[0]\r\n .getAttribute(\"href\") as string;\r\nconst history = createBrowserHistory({ basename: baseUrl });\r\n\r\n// Get the application-wide store instance, prepopulating with state from the server where available.\r\nconst store = configureStore(history);\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\nserviceWorker.unregister();\r\n// registerServiceWorker();\r\n","import { applyMiddleware, combineReducers, compose, createStore } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport { connectRouter, routerMiddleware } from 'connected-react-router';\r\nimport { History } from 'history';\r\nimport { ApplicationState, reducers } from './';\r\nimport reduxMiddleware from 'react-block-ui/lib/reduxMiddleware';\r\n\r\nexport default function configureStore(history: History, initialState?: ApplicationState) {\r\n const middleware = [\r\n thunk,\r\n reduxMiddleware,\r\n routerMiddleware(history)\r\n ];\r\n\r\n const rootReducer = combineReducers({\r\n ...reducers,\r\n router: connectRouter(history)\r\n });\r\n\r\n const enhancers:any = [];\r\n const windowIfDefined = typeof window === 'undefined' ? null : window as any;\r\n if (windowIfDefined && windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__) {\r\n enhancers.push(windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__());\r\n }\r\n\r\n return createStore(\r\n rootReducer,\r\n initialState,\r\n compose(applyMiddleware(...middleware), ...enhancers)\r\n );\r\n}\r\n","module.exports = __webpack_public_path__ + \"static/media/ico-pttgrp.cbe8a336.png\";","const isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register() {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const url = process.env.PUBLIC_URL as string;\r\n const publicUrl = new URL(url, window.location.toString());\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing as ServiceWorker;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n // console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n // console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (response.status === 404 || (contentType && contentType.indexOf('javascript') === -1)) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log('No internet connection found. App is running in offline mode.');\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import Swal, { SweetAlertIcon } from \"sweetalert2\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport axios from \"axios\";\r\nimport Crypto from 'crypto-js'\r\nimport parse from 'html-react-parser';\r\n\r\n\r\nexport const arrShortMonth = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\r\n\r\nexport const ColumnWidthInput = {\r\n Delete: 50,\r\n No: 70,\r\n General: 200,\r\n Specific: 300,\r\n Unit: 150,\r\n Source: 250,\r\n Month: 160,\r\n}\r\n\r\nexport const AlertTitle = {\r\n Success: \"Action Completed\",\r\n Warning: \"Warning\",\r\n Error: \"Error\",\r\n Info: \"Information\",\r\n Confirm: \"Confirmation\",\r\n Hint: \"Hint\",\r\n Duplicate: \"Duplicate\",\r\n};\r\n\r\nexport const AlertMsg = {\r\n SaveComplete: \"Data is already saved.\",\r\n DeleteComplete: \"Delete is completed.\",\r\n Warning: \"Warning\",\r\n Error: \"Some thing went wrong\",\r\n Info: \"Info\",\r\n ConfirmSave: \"Do you want to save data?\",\r\n ConfirmSaveDraft: \"Do you want to save draft data?\",\r\n ConfirmDelete: \"Do you want to delete this data?\",\r\n ConfirmApprove: \"Do you want to approve data?\",\r\n ConfirmRevisit: \"Do you want to revisit data?\",\r\n ConfirmCancel: \"Do you want to cancel data?\",\r\n NoPermission: \"Access denied\",\r\n SessionTimeOut: \"Session time out\",\r\n Duplicate: \"Duplicate Data\",\r\n DeleteFail: 'Please select ',\r\n UploadImage: \"Please upload image\",\r\n OverTime: \"Please select Start Time less than End Time.\",\r\n ConfirmForgot: \"Do you want to Email Forgot Password?\",\r\n};\r\nexport const Process_System = {\r\n process_SessionExpire: \"SSEXP\",\r\n process_Duplicate: \"DUP\",\r\n process_Success: \"Success\",\r\n process_Error: \"Error\",\r\n};\r\n\r\nexport const AlertIcon = {\r\n info: \"info\" as SweetAlertIcon,\r\n success: \"success\" as SweetAlertIcon,\r\n error: \"error\" as SweetAlertIcon,\r\n warning: \"warning\" as SweetAlertIcon,\r\n question: \"question\" as SweetAlertIcon,\r\n};\r\n\r\nexport const AlertButtonText = {\r\n OK: \"OK\",\r\n Cancel: \"Cancel\",\r\n Close: \"Close\",\r\n Yes: \"Yes\",\r\n Confirm: \"Confirm\",\r\n};\r\n\r\nexport const TooltipsMSG = {\r\n Add: \"Add\",\r\n Edit: \"Edit\",\r\n Delete: \"Delete\",\r\n View: \"View\",\r\n Search: \"Search\",\r\n Save: \"Save\",\r\n Approve: \"Approve\",\r\n Reject: \"Reject\",\r\n Cancel: \"Cancel\",\r\n Logout: \"Logout\",\r\n ReviewContent: \"Review Content\",\r\n File: \"File\",\r\n DownloadTemplate: \"Download Template\",\r\n Download: \"Download\",\r\n Close: \"Close\",\r\n MasterData: \"Master Data\",\r\n DocRef: \"Document reference\",\r\n Check: \"Check\",\r\n Submit: \"Submit\",\r\n NewRegistration: \"Registration\",\r\n Withdraw: \"Withdraw\",\r\n SendToVendor: \"Send To Vendor\"\r\n};\r\n\r\nexport const ResultDeleteAPI = (\r\n IsLoadData = false,\r\n response,\r\n MSG_Success,\r\n fnOnSuccess?,\r\n fnOther?\r\n) => {\r\n let { sStatus, sMsg, nPermission } = response;\r\n const {\r\n process_SessionExpire,\r\n process_Duplicate,\r\n process_Success,\r\n process_Error,\r\n } = Process_System;\r\n if (sStatus === process_Success) {\r\n if (!nPermission) nPermission = 1;\r\n if (nPermission === 0) {\r\n NoPermission();\r\n } else {\r\n if (!IsLoadData) {\r\n if (!MSG_Success) MSG_Success = AlertMsg.DeleteComplete;\r\n SwAlert.Success(AlertTitle.Info, MSG_Success, fnOnSuccess);\r\n } else {\r\n if (fnOnSuccess) fnOnSuccess();\r\n }\r\n }\r\n } else if (sStatus === process_SessionExpire) {\r\n SwAlert.Warning(AlertTitle.Warning, AlertMsg.SessionTimeOut, function () {\r\n lnkToLogin()\r\n });\r\n } else if (sStatus === process_Duplicate) {\r\n let tempMsg = AlertMsg.Duplicate;\r\n if (!sMsg) {\r\n sMsg = tempMsg;\r\n }\r\n SwAlert.Warning(AlertTitle.Warning, sMsg, () => {\r\n if (fnOther) fnOther();\r\n });\r\n } else if (sStatus === process_Error) {\r\n SwAlert.Warning(AlertTitle.Warning, sMsg, () => {\r\n if (fnOther) fnOther();\r\n });\r\n } else {\r\n if (!nPermission) nPermission = 1;\r\n if (nPermission === 0) {\r\n NoPermission();\r\n } else {\r\n if (fnOnSuccess) fnOnSuccess();\r\n }\r\n }\r\n};\r\n\r\nexport const ResultAPI = (\r\n IsLoadData = false,\r\n response,\r\n MSG_Success,\r\n fnOnSuccess?,\r\n fnOther?\r\n) => {\r\n let { sStatus, sMsg, nPermission } = response;\r\n const {\r\n process_SessionExpire,\r\n process_Duplicate,\r\n process_Success,\r\n process_Error,\r\n } = Process_System;\r\n if (sStatus === process_Success) {\r\n if (!nPermission) nPermission = 1;\r\n if (nPermission === 0) {\r\n NoPermission();\r\n } else {\r\n if (!IsLoadData) {\r\n if (!MSG_Success) MSG_Success = AlertMsg.SaveComplete;\r\n SwAlert.Success(AlertTitle.Info, MSG_Success, fnOnSuccess);\r\n } else {\r\n if (fnOnSuccess) fnOnSuccess();\r\n }\r\n }\r\n } else if (sStatus === process_SessionExpire) {\r\n SwAlert.Warning(AlertTitle.Warning, AlertMsg.SessionTimeOut, function () {\r\n lnkToLogin()\r\n });\r\n } else if (sStatus === process_Duplicate) {\r\n let tempMsg = AlertMsg.Duplicate;\r\n if (!sMsg) {\r\n sMsg = tempMsg;\r\n }\r\n SwAlert.Warning(AlertTitle.Warning, sMsg, () => {\r\n if (fnOther) fnOther();\r\n });\r\n } else if (sStatus === process_Error) {\r\n SwAlert.Warning(AlertTitle.Warning, sMsg, () => {\r\n if (fnOther) fnOther();\r\n });\r\n } else {\r\n if (!nPermission) nPermission = 1;\r\n if (nPermission === 0) {\r\n NoPermission();\r\n } else {\r\n if (fnOnSuccess) fnOnSuccess();\r\n }\r\n }\r\n};\r\n\r\nexport const DialogConfirm = (funcYes, funcNo?, sMsg?) => {\r\n SwAlert.Confirm(AlertTitle.Confirm, sMsg != undefined && sMsg != \"\" ? sMsg : AlertMsg.ConfirmSave, funcYes, funcNo);\r\n};\r\n\r\nexport const DialogConfirmDelete = (funcYes, funcNo?) => {\r\n SwAlert.Confirm(AlertTitle.Confirm, AlertMsg.ConfirmDelete, funcYes, funcNo);\r\n};\r\nexport const DialogConfirmForgot = (funcYes, funcNo?) => {\r\n SwAlert.Confirm(AlertTitle.Confirm, AlertMsg.ConfirmForgot, funcYes, funcNo);\r\n};\r\nexport const SwAlert_Title = (sTitle) => {\r\n return \"\" + sTitle + \"\";\r\n};\r\n\r\nexport const SwAlert = {\r\n Common: (sTitle, sMessage, fnOK?) => {\r\n Swal.fire({\r\n title: SwAlert_Title(!sTitle ? \"\" : sTitle + \"\"),\r\n html: sMessage,\r\n confirmButtonText: AlertButtonText.Close,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n }).then((result) => {\r\n if (result.value) {\r\n if (fnOK) fnOK();\r\n }\r\n });\r\n },\r\n Info: (sTitle, sMessage, fnOK?) => {\r\n Swal.fire({\r\n title: SwAlert_Title(!sTitle ? AlertTitle.Success : sTitle + \"\"),\r\n html: sMessage,\r\n icon: AlertIcon.info,\r\n confirmButtonText: AlertButtonText.Close,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n }).then((result) => {\r\n if (result.value) {\r\n if (fnOK) {\r\n fnOK();\r\n } else {\r\n Swal.close();\r\n }\r\n }\r\n });\r\n },\r\n Success: function (sTitle, sMessage, fnOK?) {\r\n Swal.fire({\r\n title: SwAlert_Title(!sTitle ? AlertTitle.Success : sTitle + \"\"),\r\n html: sMessage,\r\n icon: AlertIcon.success,\r\n confirmButtonText: AlertButtonText.Close,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n }).then(function (result) {\r\n if (result.value) {\r\n if (fnOK) {\r\n fnOK();\r\n } else {\r\n Swal.close();\r\n }\r\n }\r\n });\r\n },\r\n Error: function (sTitle, sMessage, fnOK?) {\r\n Swal.fire({\r\n icon: AlertIcon.error,\r\n title: SwAlert_Title(!sTitle ? AlertTitle.Error : sTitle + \"\"),\r\n html: sMessage,\r\n confirmButtonText: AlertButtonText.Close,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n }).then(function (result) {\r\n if (result.value) {\r\n if (fnOK) {\r\n fnOK();\r\n } else {\r\n Swal.close();\r\n }\r\n }\r\n });\r\n },\r\n Warning: function (sTitle, sMessage, fnOK?) {\r\n Swal.fire({\r\n icon: AlertIcon.warning,\r\n title: SwAlert_Title(!sTitle ? AlertTitle.Warning : sTitle + \"\"),\r\n html: sMessage,\r\n confirmButtonText: AlertButtonText.Close,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n }).then(function (result) {\r\n if (result.value) {\r\n if (fnOK) {\r\n fnOK();\r\n } else {\r\n Swal.close();\r\n }\r\n }\r\n });\r\n },\r\n Confirm: function (sTitle, sMessage, fnYes?, fnNo?) {\r\n Swal.fire({\r\n title: sTitle,\r\n text: sMessage,\r\n // icon: AlertIcon.question,\r\n icon: AlertIcon.question,\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: AlertButtonText.Confirm,\r\n showLoaderOnConfirm: true,\r\n allowOutsideClick: false,\r\n preConfirm: function () {\r\n return new Promise(function () {\r\n //resolve, reject\r\n Swal.disableButtons();\r\n\r\n if (fnYes) {\r\n (document.getElementsByClassName(\"swal2-cancel\") as any)[0].style.display = \"none\";\r\n fnYes();\r\n } else {\r\n Swal.close();\r\n }\r\n });\r\n },\r\n }).then((result) => {\r\n if (result.dismiss === Swal.DismissReason.cancel) {\r\n if (fnNo) {\r\n fnNo();\r\n } else {\r\n Swal.close();\r\n }\r\n }\r\n });\r\n },\r\n ConfirmYN: function (sTitle, sMessage, fnYes?, fnNo?) {\r\n Swal.fire({\r\n title: SwAlert_Title(!sTitle ? AlertTitle.Confirm : sTitle + \"\"),\r\n html: sMessage,\r\n icon: AlertIcon.question,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n showCancelButton: true,\r\n confirmButtonColor: \"#5cb85c\", //\"#2098D1\",\r\n confirmButtonText: \"Yes\",\r\n cancelButtonText: \"Cancel\",\r\n\r\n // closeOnConfirm: false,\r\n // closeOnCancel: false\r\n }).then((result) => {\r\n if (result.value) {\r\n if (fnYes) {\r\n fnYes();\r\n var d = Swal.getCloseButton();\r\n } else { Swal.close() };\r\n } else if (result.dismiss === Swal.DismissReason.cancel) {\r\n if (fnNo) fnNo();\r\n else Swal.close();\r\n }\r\n });\r\n },\r\n};\r\n\r\nexport const actionBlockUI = () => {\r\n return { type: \"BLOCK_UI\" };\r\n};\r\n\r\nexport const actionUnBlockUI = () => {\r\n return { type: \"UNBLOCK_UI\" };\r\n};\r\n\r\nexport const FnBlock_UI = () => {\r\n const Dispatch = useDispatch();\r\n const BlockUI = () => {\r\n Dispatch(actionBlockUI())\r\n };\r\n const UnBlockUI = () => Dispatch(actionUnBlockUI());\r\n return { BlockUI, UnBlockUI };\r\n};\r\n\r\nexport const NoPermission = () => {\r\n SwAlert.Error(undefined, \"No Permission\", () => {\r\n // window.location.href = \"/\";\r\n // window.location.href = `${process.env.REACT_APP_API_URL}`;\r\n lnkToNotPermission()\r\n });\r\n};\r\n\r\nexport const AxiosPost = (\r\n sWebMetodName,\r\n objJSON,\r\n fnSuccess?,\r\n fnError?,\r\n BlockUI?,\r\n UnBlockUI?,\r\n Async?\r\n) => {\r\n if (BlockUI) BlockUI();\r\n\r\n if (Async) {\r\n const fnAsync = async () => {\r\n try {\r\n let res = await axios.post(process.env.REACT_APP_API_URL + \"api/\" + sWebMetodName, objJSON)\r\n if (fnSuccess) fnSuccess(res.data);\r\n } catch (errors) {\r\n if (fnError) {\r\n await fnError();\r\n if (UnBlockUI) UnBlockUI()\r\n } else {\r\n if (UnBlockUI) UnBlockUI()\r\n SwAlert.Error(undefined, errors);\r\n }\r\n }\r\n }\r\n fnAsync()\r\n } else {\r\n axios\r\n .post(\r\n process.env.REACT_APP_API_URL + \"api/\" + sWebMetodName,\r\n objJSON\r\n )\r\n .then((res) => {\r\n if (fnSuccess) fnSuccess(res.data);\r\n })\r\n .catch((errors) => {\r\n if (fnError) {\r\n fnError();\r\n } else {\r\n SwAlert.Error(undefined, errors);\r\n }\r\n })\r\n .then((res) => {\r\n if (UnBlockUI) UnBlockUI();\r\n });\r\n }\r\n};\r\n\r\nexport const closeSwAlert = () => (\r\n Swal.close()\r\n)\r\n\r\nexport const scrollToElementValidate = (formID?) => {\r\n let elForm: any = formID\r\n ? (document.querySelector(\"form[id=\" + formID + \"]\") as any)\r\n : document.querySelector(\"form\");\r\n let elByClass = elForm.querySelectorAll(\"div.Mui-error\") as any;\r\n if (elByClass && elByClass.length > 0)\r\n elByClass[0].scrollIntoView({ behavior: \"smooth\", block: \"center\" });\r\n}\r\n\r\nexport const lnkToLogin = () => {\r\n let el = document.getElementById(\"lnkToLogin\") as any\r\n el && el.click()\r\n}\r\n\r\nexport const lnkToNotPermission = () => {\r\n let el = document.getElementById(\"NotPermission\") as any\r\n el && el.click()\r\n}\r\n\r\nexport const Effect = (props) => {\r\n const effect = () => {\r\n if (props.formik.submitCount > 0 && !props.formik.isValid) {\r\n props.onSubmissionError();\r\n }\r\n };\r\n props.useEffect(effect, [props.formik.submitCount, props.formik.errors]);\r\n return null;\r\n}\r\n\r\n\r\nexport const CheckTextInput = (nVal) => {\r\n if (nVal != \"\" && nVal != null) {\r\n nVal = (nVal + \"\").replace(/ /g, '').replace(/,/g, '');\r\n if (IsNumberic(nVal)) {\r\n var nCheck = parseFloat(nVal);\r\n if (nCheck > 0) {\r\n let arrSplit = nVal.split('.')\r\n if (arrSplit.length > 1) {\r\n if (arrSplit[1]) {\r\n nVal = `${arrSplit[0]}.${arrSplit[1]}`\r\n } else {\r\n nVal = arrSplit[0]\r\n }\r\n }\r\n nVal = addCommas(nVal);\r\n }\r\n else if (nCheck < 0) {\r\n nVal = \"\";\r\n }\r\n else {\r\n nVal = nCheck;\r\n }\r\n }\r\n else {\r\n if (nVal.toLowerCase() == \"na\" || nVal.toLowerCase() == \"n/a\" || nVal.toLowerCase() == \"n\" || nVal.toLowerCase() == \"a\") {\r\n nVal = \"N/A\";\r\n } else {\r\n nVal = \"\";\r\n }\r\n }\r\n }\r\n nVal = nVal + \"\";\r\n return nVal + \"\";\r\n}\r\n\r\nexport const CheckTextOutput = (nValue) => {\r\n var nVal = nValue + \"\";\r\n if (nVal != \"\" && nVal != null) {\r\n if (IsNumberic(nVal)) {\r\n nVal = nVal.replace(/,/g, '');\r\n if (nVal.toLowerCase() != \"na\" && nVal.toLowerCase() != \"n/a\") {\r\n var nDecimal = 3;\r\n var sEmpty = \"-\";\r\n if (IsNumberic(nVal)) {\r\n\r\n var sv2 = parseFloat(nVal);\r\n var arrValue = nVal.split('.');\r\n if (sv2 >= 1 || sv2 == 0) { // 1 ถึง Infinity\r\n nVal = SetFormatNumber(sv2, nDecimal, sEmpty)\r\n }\r\n else if (sv2 > 0 && sv2 < 1 && arrValue.length == 2) {\r\n if (arrValue[1].length > 4) {\r\n nVal = (sv2.toExponential(3)).replace(/e/g, 'E');\r\n }\r\n }\r\n else if (sv2 <= -1) {\r\n nVal = SetFormatNumber(sv2, nDecimal, sEmpty)\r\n }\r\n }\r\n }\r\n else {\r\n nVal = \"N/A\";\r\n }\r\n }\r\n else {\r\n nVal = \"\";\r\n }\r\n\r\n }\r\n\r\n nVal = nVal + \"\";\r\n return nVal + \"\";\r\n}\r\nexport const IsNumberic = (sVal) => {\r\n sVal = (sVal + \"\").replace(/,/g, '');\r\n return !isNaN(sVal);\r\n}\r\nexport const addCommas = (nStr) => {\r\n nStr += '';\r\n let x = nStr.split('.');\r\n let x1 = x[0];\r\n let x2 = x.length > 1 ? '.' + x[1] : '';\r\n var rgx = /(\\d+)(\\d{3})/;\r\n while (rgx.test(x1)) {\r\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\r\n }\r\n return x1 + x2;\r\n}\r\nexport const SetFormatNumber = (nNumber, nDecimal, sEmpty) => {\r\n if (IsNumberic(nNumber)) {\r\n if (IsNumberic(nDecimal))\r\n return addCommas(nNumber.toFixed(nDecimal));\r\n else\r\n return addCommas(nNumber);\r\n }\r\n else {\r\n return !nNumber ? (sEmpty === undefined ? \"\" : sEmpty) : nNumber;\r\n }\r\n}\r\n\r\nconst URL_API = process.env.REACT_APP_API_URL + \"api/\";\r\nexport const AutocompleteDataSource = async (Controller, MethodName, ObjSearch) => {\r\n const res = await axios.post(URL_API + Controller + '/' + MethodName, ObjSearch)\r\n return res;\r\n};\r\n\r\nconst keyCrypto = \"P4ssw0rd3ndCr7pt\"\r\nexport const Encrypt = (dataEncrypt) => {\r\n let data = dataEncrypt + \"\";\r\n\r\n let result = Crypto.AES.encrypt(data, keyCrypto).toString();\r\n ;\r\n result = result.replace(/\\//g, \"s14sh\").replace(/\\+/g, 'p1u5');\r\n\r\n return result\r\n}\r\nexport const Decrypt = (dataDecrypt) => {\r\n if (dataDecrypt != null) {\r\n dataDecrypt = dataDecrypt + \"\";\r\n dataDecrypt = dataDecrypt.replace(/s14sh/g, '/').replace(/p1u5/g, '+')\r\n let bytes = Crypto.AES.decrypt(dataDecrypt, keyCrypto);\r\n let result = bytes.toString(Crypto.enc.Utf8)\r\n return result\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nexport const ParseHtml = (val) => {\r\n if (val)\r\n return parse(val);\r\n else\r\n return val;\r\n}\r\n\r\n\r\nexport const TableRowColor = {\r\n OutputTotal: \"rgb(167, 215, 113)\",\r\n RowCollapse: \"rgb(167, 215, 113)\",\r\n OutputSubTotal1: \"rgb(223, 237, 161)\"\r\n}\r\n\r\nexport const BackToComponent = (lnkBack) => {\r\n var elLink = document.getElementById(lnkBack) as any;\r\n if (elLink) {\r\n elLink.click();\r\n }\r\n}\r\n\r\nexport const RegexpPasswork = () => {\r\n\r\n let regexp1 = \"((?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,}))\";//พิมพ์ใหญ่และตัวเลขและอักขระพิเศษ\r\n let regexp2 = \"((?=.*[A-Z])(?=.*[0-9])(?=.*[a-z])(?=.{8,}))\";\r\n let regexp3 = \"((?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,}))\";\r\n let regexp4 = \"((?=.*[a-z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,}))\";\r\n let regexp5 = \"((?=.*[a-z])(?=.*[A-Z])(?=.*[!@#\\$%\\^&\\*])(?=.{8,}))\";\r\n let regexp6 = \"((?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,}))\";//พิมพ์เล็กและพิมพ์ใหญ่และตัวเลขและอักขระพิเศษ \r\n let egexp = \"^(\" + regexp1 + \"|\" + regexp2 + \"|\" + regexp3 + \"|\" + regexp4 + \"|\" + regexp5 + \"|\" + regexp6 + \")\"\r\n return egexp;\r\n}\r\nexport const MsgValidate = {\r\n PleaseSpecify: \"Please Specify \",\r\n Passwork: \"Passwords must have at least 8 characters and contain at least three of the following: uppercase letters, lowercase letters, numbers, symbols.\",\r\n InvalidEmail: \"Invalid Email\",\r\n ConfirmPassword: \"Invalid Password\"\r\n}\r\n\r\nexport const MsgValidateMaxLength = (sField, nMaxLength) => {\r\n return sField + \" must be at most \" + nMaxLength + \" characters\";\r\n};\r\n\r\nexport const resetFromData = (formProps, sFild, sValue) => {\r\n formProps.setFieldValue(sFild, sValue, false)\r\n formProps.setFieldError(sFild, '', false)\r\n}\r\nexport const resetFromSubmitData = (setFieldValue, setFieldError, sFild, sValue) => {\r\n setFieldValue(sFild, sValue, false)\r\n setFieldError(sFild, '', false)\r\n}\r\n\r\nexport const AxiosPostExportFile = (\r\n sWebMetodName,\r\n objJSON,\r\n filename,\r\n fnError?,\r\n BlockUI?,\r\n UnBlockUI?\r\n) => {\r\n if (BlockUI) BlockUI();\r\n axios\r\n .post(\r\n process.env.REACT_APP_API_URL + \"api/\" + sWebMetodName,\r\n objJSON, {\r\n responseType: 'blob',\r\n }\r\n )\r\n .then((res) => {\r\n exportsFileSave(res.data, filename);\r\n })\r\n .catch((errors) => {\r\n if (fnError) {\r\n fnError();\r\n } else {\r\n SwAlert.Error(undefined, errors);\r\n }\r\n })\r\n .then((res) => {\r\n if (UnBlockUI) UnBlockUI();\r\n });\r\n};\r\n\r\nexport const exportsFileSave = (data, filename, mime?, bom?) => {\r\n var blobData = (typeof bom !== 'undefined') ? [bom, data] : [data]\r\n var blob = new Blob(blobData, { type: mime || 'application/octet-stream' });\r\n if (typeof window.navigator.msSaveBlob !== 'undefined') {\r\n window.navigator.msSaveBlob(blob, filename);\r\n }\r\n else {\r\n var blobURL = (window.URL && window.URL.createObjectURL) ? window.URL.createObjectURL(blob) : window.webkitURL.createObjectURL(blob);\r\n var tempLink = document.createElement('a');\r\n tempLink.style.display = 'none';\r\n tempLink.href = blobURL;\r\n tempLink.setAttribute('download', filename);\r\n if (typeof tempLink.download === 'undefined') {\r\n tempLink.setAttribute('target', '_blank');\r\n }\r\n document.body.appendChild(tempLink);\r\n tempLink.click();\r\n setTimeout(function () {\r\n document.body.removeChild(tempLink);\r\n window.URL.revokeObjectURL(blobURL);\r\n }, 200)\r\n }\r\n}","export default class FormErrors {\r\n static displayableError(form, fieldName, externalErrorMessage = null) {\r\n if (externalErrorMessage) {\r\n return externalErrorMessage;\r\n }\r\n\r\n if (!form.touched[fieldName]) {\r\n return null;\r\n }\r\n\r\n const errors = form.errors[fieldName];\r\n\r\n if (!errors) {\r\n return null;\r\n }\r\n\r\n if (Array.isArray(errors)) {\r\n return errors[0];\r\n }\r\n\r\n return errors;\r\n }\r\n\r\n static validateStatus(form, fieldName, externalErrorMessage) {\r\n if (this.displayableError(form, fieldName, externalErrorMessage)) {\r\n return \"is-invalid\";\r\n }\r\n\r\n return \"\";\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport FormErrors from \"./formErrors\";\r\nimport { FastField } from \"formik\";\r\nimport { TextField, InputAdornment } from \"@material-ui/core\";\r\nimport '../../Styles/Fonts/Kanit/css/fonts.css';\r\nimport { FormControl, InputLabel, Grid } from '@material-ui/core';\r\nimport { AccountCircle } from '@material-ui/icons';\r\nexport class InputFormItemNotFastLogin extends Component {\r\n\r\n render() {\r\n // const requires =
require
;\r\n const {\r\n label,\r\n name,\r\n form,\r\n hint,\r\n type,\r\n placeholder,\r\n autoFocus,\r\n autoComplete,\r\n inputProps,\r\n disable,\r\n errorMessage,\r\n required,\r\n readonly,\r\n size,\r\n startAdornment,\r\n } = this.props;\r\n\r\n return (\r\n {\r\n form.setFieldValue(name, event.target.value);\r\n // form.setFieldTouched(name);\r\n\r\n }}\r\n onFocus={() => {\r\n form.setFieldTouched(name);\r\n }\r\n }\r\n value={form.values[name] || \"\"}\r\n disabled={disable || false}\r\n placeholder={placeholder || undefined}\r\n autoFocus={autoFocus || undefined}\r\n //autoComplete={autoComplete || undefined}\r\n autoComplete={\"disabled\"}\r\n InputLabelProps={{\r\n //shrink: true, \r\n }}\r\n InputProps={{\r\n readOnly: readonly || false,\r\n startAdornment: startAdornment,\r\n }}\r\n\r\n error={!!FormErrors.displayableError(form, name, errorMessage)}\r\n helperText={\r\n FormErrors.displayableError(form, name, errorMessage) || hint\r\n }\r\n\r\n {...inputProps}\r\n />\r\n );\r\n }\r\n}\r\n\r\nInputFormItemNotFastLogin.defaultProps = {\r\n type: \"text\",\r\n required: false,\r\n};\r\n\r\nInputFormItemNotFastLogin.propTypes = {\r\n form: PropTypes.object.isRequired,\r\n name: PropTypes.string.isRequired,\r\n required: PropTypes.bool,\r\n readonly: PropTypes.bool,\r\n type: PropTypes.string,\r\n label: PropTypes.string,\r\n hint: PropTypes.string,\r\n autoFocus: PropTypes.bool,\r\n prefix: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n inputProps: PropTypes.object,\r\n size: PropTypes.string,\r\n startAdornment:PropTypes.object,\r\n};\r\n\r\nclass InputFormItemLogin extends Component {\r\n render() {\r\n\r\n return (\r\n }\r\n />\r\n );\r\n }\r\n}\r\n\r\nexport default InputFormItemLogin;\r\n","import React, { Fragment, useState, useEffect } from 'react';\r\n// import ReactDOM from 'react-dom';\r\n// import './General/MasterPage/MP_Front.css';\r\nimport EmailIcon from '@material-ui/icons/Email';\r\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle';\r\nimport { FormControl, InputLabel, Grid, TextField, DialogContent, DialogActions } from '@material-ui/core';\r\nimport LockIcon from '@material-ui/icons/Lock';\r\nimport Input from '@material-ui/core/Input/Input';\r\nimport InputAdornment from '@material-ui/core/InputAdornment/InputAdornment';\r\n\r\nimport LockOpenIcon from '@material-ui/icons/LockOpen';\r\nimport { FnBlock_UI, AxiosPost, ResultAPI, Process_System, MsgValidate, RegexpPasswork, DialogConfirm } from './SysComponent/SystemComponent';\r\nimport { Formik, Form, Field, FastField } from \"formik\";\r\nimport * as yup from 'yup';\r\nimport InputFormItemLogin from './form/InputFormItemLogin'\r\nimport { AccountCircle } from '@material-ui/icons';\r\nimport { Link } from 'react-router-dom';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport { makeStyles, IconButton } from '@material-ui/core';\r\nimport { blue } from '@material-ui/core/colors';\r\nimport { MuiButtonSave, MuiButtonCancel } from '../components/SysComponent/MaterialComponent';\r\nimport Button from '@material-ui/core/Button';\r\nconst sController = \"Login\";\r\n\r\nconst useStyles = makeStyles({\r\n root:{\r\n zIndex: 18,\r\n },\r\n avatar: {\r\n backgroundColor: blue[100],\r\n color: blue[600],\r\n },\r\n});\r\n\r\nexport interface ChangePasswordUser {\r\n UserID: number,\r\n CompanyID: number,\r\n UserName: string,\r\n isAlert90D: boolean,\r\n}\r\nexport interface ChangePasswordProps {\r\n open: boolean;\r\n data: ChangePasswordUser;\r\n onClose: (value: string) => void;\r\n}\r\n\r\nexport const ChangePassword = (props: ChangePasswordProps) => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const { onClose, open, data } = props;\r\n\r\n const handleClose = () => {\r\n onClose(\"\");\r\n };\r\n\r\n const fnInitialDataUser = {\r\n txtUserID: data.UserID,\r\n txtUserName: data.UserName,\r\n txtCompanyID: data.CompanyID,\r\n isAlert90D: data.isAlert90D,\r\n txtOLDPassword: \"\",\r\n txtNewPassword: \"\",\r\n txtConfirmPassword: \"\",\r\n };\r\n const validateUserInfo = yup.object().shape({\r\n txtUserName: yup.string().required(MsgValidate.PleaseSpecify + 'Username'),\r\n txtOLDPassword: yup.string().required(MsgValidate.PleaseSpecify + 'OLD Password'),\r\n txtNewPassword: yup.string().required(MsgValidate.PleaseSpecify + 'New Password').matches(\r\n RegexpPasswork(), MsgValidate.Passwork\r\n ),\r\n txtConfirmPassword: yup.string().when(\"txtNewPassword\", {\r\n is: val => (val && val.length > 0 ? true : false),\r\n then: yup.string().oneOf(\r\n [yup.ref(\"txtNewPassword\")], MsgValidate.ConfirmPassword\r\n )\r\n }).required(MsgValidate.PleaseSpecify + 'Confirm Password'),\r\n });\r\n\r\n const onChangePassword = (formProps) => {\r\n let obj = {\r\n nUserID: formProps.txtUserID,\r\n sUserName: formProps.txtUserName,\r\n isAlert90D: formProps.isAlert90D,\r\n sOLOPassword: formProps.txtOLDPassword,\r\n sNewPassword: formProps.txtConfirmPassword,\r\n nCompanyID: formProps.txtCompanyID,\r\n }\r\n DialogConfirm(() => {\r\n AxiosPost(sController + \"/ChangePassword\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n if (response.sStatus === Process_System.process_Success) {\r\n handleClose();\r\n }\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n };\r\n return (\r\n \r\n Change Password\r\n \r\n {(formProps) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n }}\r\n \r\n
\r\n );\r\n}\r\n\r\n","import React, { Fragment, useState, useEffect } from 'react';\r\nimport * as yup from 'yup';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport EmailIcon from '@material-ui/icons/Email';\r\nimport { makeStyles, IconButton, FormControl, DialogContent, DialogActions } from '@material-ui/core';\r\nimport { blue } from '@material-ui/core/colors';\r\nimport Button from '@material-ui/core/Button';\r\nimport { AxiosPost, DialogConfirm, DialogConfirmForgot, FnBlock_UI, MsgValidate, Process_System, ResultAPI } from './SysComponent/SystemComponent';\r\nimport { Formik, Form } from \"formik\";\r\n\r\nimport InputAdornment from '@material-ui/core/InputAdornment/InputAdornment';\r\nimport InputFormItemLogin from 'components/form/InputFormItemLogin';\r\n\r\nconst sController = \"Login\";\r\nconst useStyles = makeStyles({\r\n root: {\r\n zIndex: 18,\r\n },\r\n avatar: {\r\n backgroundColor: blue[100],\r\n color: blue[600],\r\n }\r\n});\r\n\r\nexport interface ForgotPasswordData {\r\n UserNameOrEmail: string,\r\n}\r\nexport interface ForgotPasswordProps {\r\n open: boolean;\r\n data: ForgotPasswordData;\r\n onClose: (value: string) => void;\r\n}\r\nexport const ForgotPassword = (props: ForgotPasswordProps) => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const { onClose, open, data } = props;\r\n const handleClose = () => {\r\n onClose(\"\");\r\n };\r\n\r\n const fnInitialData = {\r\n txtUserNameOrEmail: data.UserNameOrEmail\r\n };\r\n\r\n const validateEmailInfo = yup.object().shape({\r\n txtUserNameOrEmail: yup.string().email(MsgValidate.InvalidEmail).required(MsgValidate.PleaseSpecify + 'Email')\r\n });\r\n\r\n const onClickForgotPassword = (formProps) => {\r\n let obj = {\r\n UserNameOrEmail: formProps.txtUserNameOrEmail\r\n }\r\n \r\n DialogConfirmForgot(() => {\r\n AxiosPost(sController + \"/ForgotPassword\", obj, (res) => {\r\n ResultAPI(false, res, \"Forgot Password Complete.\", () => {\r\n if (res.sStatus === Process_System.process_Success) {\r\n \r\n handleClose();\r\n }\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n };\r\n return (\r\n\r\n \r\n Forgot Password\r\n \r\n {(formProps) => {\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 // const ForgotPassword = () => {\r\n // return (\r\n //
\r\n\r\n //
\r\n // );\r\n // }\r\n\r\n\r\n","import React, { Fragment, useState, useEffect } from 'react'\r\nimport { withStyles, Theme, createStyles, lighten } from '@material-ui/core/styles';\r\nimport { makeStyles, Table, TableHead, TableBody, TableRow, TableCell, Checkbox, Typography, Toolbar, Tooltip, IconButton, TableSortLabel, TableContainer, Paper, TablePagination, FormControlLabel, Switch, Grid } from '@material-ui/core'\r\nimport clsx from 'clsx';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport FilterListIcon from '@material-ui/icons/FilterList';\r\n\r\nexport function descendingComparator(a: T, b: T, orderBy: keyof T) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n}\r\n\r\nexport type Order = 'asc' | 'desc';\r\nexport const PerPageOptions = [10, 20, 30, 50, 100];\r\nexport const defaultPage = 20;\r\nexport interface HeadCell {\r\n disablePadding: boolean;\r\n id;\r\n label: string;\r\n numeric: boolean;\r\n width: any;\r\n isSort: boolean;\r\n}\r\nexport function getComparator(\r\n order: Order,\r\n orderBy: Key,\r\n): (a: { [key in Key]: number | string }, b: { [key in Key]: number | string }) => number {\r\n return order === 'desc'\r\n ? (a, b) => descendingComparator(a, b, orderBy)\r\n : (a, b) => -descendingComparator(a, b, orderBy);\r\n}\r\n\r\n\r\nexport function stableSort(array: T[], comparator: (a: T, b: T) => number) {\r\n const stabilizedThis = array.map((el, index) => [el, index] as [T, number]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = comparator(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\nexport const useToolbarStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(1),\r\n marginTop: theme.spacing(2),\r\n },\r\n highlight:\r\n theme.palette.type === 'light'\r\n ? {\r\n color: theme.palette.secondary.main,\r\n backgroundColor: lighten(theme.palette.secondary.light, 0.85),\r\n }\r\n : {\r\n color: theme.palette.text.primary,\r\n backgroundColor: theme.palette.secondary.dark,\r\n },\r\n title: {\r\n flex: '1 1 100%',\r\n },\r\n }),\r\n);\r\nexport const useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n width: '100%',\r\n },\r\n paper: {\r\n width: '100%',\r\n marginBottom: theme.spacing(2),\r\n },\r\n table: {\r\n minWidth: \"100%\",\r\n marginTop: 4,\r\n },\r\n visuallyHidden: {\r\n border: 0,\r\n clip: 'rect(0 0 0 0)',\r\n height: 1,\r\n margin: -1,\r\n overflow: 'hidden',\r\n padding: 0,\r\n position: 'absolute',\r\n top: 20,\r\n width: 1,\r\n },\r\n }),\r\n);\r\nexport const StyledTableRow = withStyles((theme: Theme) =>\r\n createStyles({\r\n // root: {\r\n // '&:nth-of-type(even)': {\r\n // backgroundColor: \"rgb(186 186 186 / 4%)\",\r\n // },\r\n // },\r\n }),\r\n)(TableRow);\r\n\r\nexport const StyledTable = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n border: \"1px solid #dee2e6 !important\"\r\n },\r\n }),\r\n)(Table);\r\n\r\nexport const StyledTableCell = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n // paddingLeft: \"5px\",\r\n paddingBottom: 0,\r\n paddingTop: 0,\r\n height: \"38px\",\r\n },\r\n head: {\r\n backgroundColor: \"rgba(0, 120, 255, 0.1)\",\r\n color: theme.palette.common.black,\r\n\r\n },\r\n body: {\r\n fontSize: 14,\r\n paddingTop: \"5px\",\r\n verticalAlign:\"middle !important\"\r\n },\r\n }),\r\n)(TableCell);\r\nexport const StyledTableHead = withStyles((theme: Theme) =>\r\n createStyles({\r\n // root: {\r\n // '&:nth-of-type(even)': {\r\n // backgroundColor: \"rgb(186 186 186 / 4%)\",\r\n // },\r\n // },\r\n }),\r\n)(TableHead);\r\nexport const StyledTableBody = withStyles((theme: Theme) =>\r\n createStyles({\r\n // root: {\r\n // '&:nth-of-type(even)': {\r\n // backgroundColor: \"rgb(186 186 186 / 4%)\",\r\n // },\r\n // },\r\n }),\r\n)(TableBody);\r\nexport const MuiTableTableToolbar = (props) => {\r\n const classes = useToolbarStyles();\r\n const { numSelected, toobar } = props;\r\n\r\n return (\r\n 0,\r\n })}\r\n >\r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nexport const MuiTable = (props) => {\r\n const classes = useStyles();\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n};\r\nconst StyledNoData = makeStyles((theme: Theme) =>\r\n createStyles({\r\n rowNoData: {\r\n color: \"#ff0202\",\r\n paddingTop: \"25px\",\r\n paddingBottom: \"25px\",\r\n textAlign: \"center\",\r\n '&:nth-of-type(even)': {\r\n backgroundColor: \"rgb(186 186 186 / 4%)\",\r\n },\r\n\r\n },\r\n }),\r\n);\r\n\r\nexport const MuiRowNoData = (props) => {\r\n const { colSpan } = props;\r\n const classes = StyledNoData();\r\n\r\n return (\r\n \r\n \r\n No Data\r\n \r\n \r\n );\r\n};\r\n\r\n//#region Front \r\nexport const StyledTable_Front = withStyles((theme: Theme) =>\r\n createStyles({\r\n // root: {\r\n // border: \"1px solid #dee2e6 !important\"\r\n // },\r\n }),\r\n)(Table);\r\nexport const StyledTableHead_Front = withStyles((theme: Theme) =>\r\n createStyles({\r\n // root: {\r\n // '&:nth-of-type(even)': {\r\n // backgroundColor: \"rgb(186 186 186 / 4%)\",\r\n // },\r\n // },\r\n }),\r\n)(TableHead);\r\nexport const StyledTableBody_Front = withStyles((theme: Theme) =>\r\n createStyles({\r\n // root: {\r\n // '&:nth-of-type(even)': {\r\n // backgroundColor: \"rgb(186 186 186 / 4%)\",\r\n // },\r\n // },\r\n }),\r\n)(TableBody);\r\nexport const StyledTableRow_Front = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n '&:nth-of-type(even)': {\r\n backgroundColor: \"#f5f5f5\",\r\n },\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: \"#ffffff\",\r\n },\r\n '& td': {\r\n backgroundColor: \"inherit\",\r\n }\r\n },\r\n }),\r\n)(TableRow);\r\n\r\nexport const StyledTableCell_Front = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n opacity: 0.9,\r\n paddingBottom: 0,\r\n paddingTop: 0,\r\n height: \"38px\",\r\n },\r\n head: {\r\n backgroundColor: \"rgba(0, 120, 255, 0.1)\",\r\n color: theme.palette.common.black,\r\n\r\n },\r\n body: {\r\n fontSize: 14,\r\n },\r\n }),\r\n)(TableCell);\r\n//#endregion\r\n","import React, { Fragment} from 'react'\r\nimport { FnBlock_UI, ParseHtml } from '../SysComponent/SystemComponent';\r\nimport {DialogContent, DialogActions, DialogContentText} from '@material-ui/core';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport Button from '@material-ui/core/Button';\r\nimport {useStyles} from '../form/Table/CustomTable';\r\nimport FroalaEditorView from 'react-froala-wysiwyg/FroalaEditorView';\r\nexport interface SubEventTypeProps {\r\n open: boolean;\r\n onClose: (value: string) => void;\r\n title: string;\r\n data: string;\r\n}\r\n\r\nexport const DialogFroala = (props: SubEventTypeProps) => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const { onClose, open, data, title } = props;\r\n\r\n const handleClose = () => {\r\n onClose(\"\");\r\n };\r\n return (\r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","const en = {\r\n common: {\r\n add: \"Add\",\r\n saveScore: \"Save Score\",\r\n draft: \"Save Draft\",\r\n submit: \"Submit\",\r\n approve: \"Approve\",\r\n reject: \"Reject\",\r\n or: \"or\",\r\n cancel: \"Cancel\",\r\n reset: \"Reset\",\r\n save: \"Save\",\r\n close: \"Close\",\r\n view: \"View\",\r\n destroy: \"Delete\",\r\n search: \"Search\",\r\n edit: \"Edit\",\r\n loadData: \"Load Data\",\r\n addRecord: \"Add Record\",\r\n addTeamMember: \"Add Team Member\",\r\n addPresenter: \"Add\",\r\n remove: \"Remove\",\r\n new: \"New\",\r\n exportExcel: \"Export to Excel\",\r\n exportPDF: \"Export to PDF\",\r\n qualify: \"save and notify\",\r\n noDataToExport: \"No data to export\",\r\n import: \"Import\",\r\n discard: \"Discard\",\r\n ok: \"OK\",\r\n yes: \"Yes\",\r\n no: \"No\",\r\n pause: \"Pause\",\r\n areYouSure: \"Are you sure?\",\r\n\r\n mustSelectARow: \"Must select a row\",\r\n start: \"Start\",\r\n end: \"End\",\r\n\r\n confirm: \"Confirmation\",\r\n Success: \"Action Completed\",\r\n Warning: \"Warning\",\r\n Error: \"Error\",\r\n Info: \"Information\",\r\n Hint: \"Hint\",\r\n Duplicate: \"Duplicate\",\r\n SaveComplete: \"Data is already saved.\",\r\n DeleteComplete: \"Data is already deleted.\",\r\n Error: \"Some thing went wrong.\",\r\n ConfirmSave: \"Do you want to save data?\",\r\n ConfirmDelete: \"Do you want to delete data?\",\r\n ConfirmCancel: \"Do you want to cancel data?\",\r\n NoPermission: \"Access denied.\",\r\n SessionTimeOut: \"Session timeout.\",\r\n DeleteFail: 'Please select ',\r\n UploadImage: \"Please upload image.\",\r\n confirmSubmit: \"Do you want to submit?\",\r\n confirmDraft: \"Do you want to save draft?\",\r\n confirmApprove: \"Do you want to approve?\",\r\n confirmQualify: \"Do you want to qualified?\",\r\n confirmExportPDF: \"Do you want to export PDF?\",\r\n confirmAppointment: \"Do you want to appointment?\",\r\n confirmScore: \"Do you want to save score?\",\r\n confirmReject: \"Do you want to reject?\",\r\n deleteMessage: \"Do you want to delete ?\",\r\n\r\n addFile: \"add file PDF\",\r\n addPath: \"add path\",\r\n submitToCommittee: \"Submit to Committee\",\r\n back: \"Back\",\r\n criteria: \"Abstract Scoring Criteria\",\r\n instructions: \"Scoring System Instructions\",\r\n commentImprove: \"Comment for Improvement\",\r\n remark: \"Committee Remark\",\r\n SubmissionHistory: \"Submission Type History\",\r\n fullDevelop: \"Full Development\",\r\n underDevelop: \"Under Development / Preliminary Study\",\r\n print: \"Print\",\r\n verify: \"Verify\",\r\n notAvailable: \"Not Available\",\r\n notifyAll: \"Notify All Topic owner\",\r\n subsurface: \"Subsurface\",\r\n business: \"Business\",\r\n engineering: \"Engineering & Operation\",\r\n fullpaper: \"Full Paper & Presentation\",\r\n adjust: \"Adjust program\",\r\n calendarEvent: \"Calendar & Event Program\",\r\n hide: \"Hide\",\r\n hideMessage: \"Do you want to hide ?\",\r\n testSendMail: \"Test Send Mail\",\r\n },\r\n icon: {\r\n iconEdit: \"action\",\r\n iconView: \"\",\r\n iconDelete: \"\",\r\n\r\n committee: \"#191D71\",\r\n comment: \"#3765A4\",\r\n },\r\n tag: {\r\n tagSubmitted: \"#87d068\",\r\n tagSaveDraft: \"#108ee9\",\r\n tagError: \"error\",\r\n // {i18n(\"common.print\")}\r\n },\r\n\r\n app: {\r\n title: \"PTTEP Awards Center\",\r\n },\r\n\r\n system: {\r\n tf: \"TF\",\r\n km: \"KM\",\r\n ia: \"IA\",\r\n },\r\n\r\n entities: {\r\n admin: {\r\n menutitle: \"Administrator\"\r\n },\r\n technicalforum: {\r\n abstractsubmission: {\r\n menutitle: \" TF & BF Abstract Submission\",\r\n fields: {\r\n id: \"Id\",\r\n topiclabel: \"Topic\",\r\n discipline: \"Discipline\",\r\n submissionType: \"Submission Type\",\r\n projectType: \"Project Type\",\r\n location: \"Location\",\r\n MemberType: \"Member Type\",\r\n Name: \"Name\",\r\n DepOrg: \"Department / Organization\",\r\n PositionTeam: \"Position in Team\",\r\n\r\n // MODAL\r\n employeeid: \"EmployeeID\",\r\n firstname: \"First Name\",\r\n name: \"Employee\",\r\n department: \"Division / Department\",\r\n fullthainame: \"Full thai name\",\r\n position: \"Position\",\r\n asset: \"Asset\",\r\n mobile: \"Telephone Number\",\r\n years: \"Year to Join PTTEP\",\r\n sYear: \"Year\",\r\n education: \"Education Background\",\r\n experirence: \"Work Experirence\",\r\n surname: \"Surname\",\r\n SEMAIL: \"Email\",\r\n sTelNo: \"Mobile Phone Number\",\r\n\r\n // ABT\r\n sTopic: \"Code / Topic\",\r\n cStatus: \"Status\",\r\n sRemark: \"Committee Remark\",\r\n\r\n // File Submission\r\n sUrl: \"Add Path (URL)\",\r\n\r\n // Submission Status\r\n cQualified: \"Abstract Selection Status\",\r\n\r\n // Enable Disable Scoring\r\n cConfirmAbstract: \"Abstract Scoring\",\r\n cConfirmAword: \"Full Paper Scoring\",\r\n cConfirmPresent: \"Presentation Scoring\",\r\n cConfirmPoster: \"Poster Scoring\",\r\n // Scoring Form Year\r\n SDISCIPLINEID: \"Discipline\",\r\n nWeigth: \"Weigth(%)\",\r\n sCategory: \"Criteria\",\r\n sTotalSCORE: \"Maximum Score\",\r\n\r\n criteria: \"Category\",\r\n sMinSCORE: \"Minimum Score\",\r\n sRecID: \"Category\",\r\n nOrder: \"nOrder\",\r\n nWeigths: \"Weigth\",\r\n // Program Adjustment\r\n dPresentDate: \"Presentation Date\",\r\n sVenueID: \"Venue\",\r\n // Program Adjustment Add\r\n sScheduleName: \"Topic / Event\",\r\n sStartTime: \"Start Time\",\r\n SCODE: \"Code\",\r\n // ABTSelection\r\n cStatusSelection: \"Abstract Selection Status\",\r\n // Final Score\r\n sAwardID: \"Award\"\r\n },\r\n },\r\n },\r\n IASubnission: {\r\n submissiionInnovationAward: {\r\n menutitle: \"Submission Innovation Award\",\r\n fields: {\r\n select: \"Select\",\r\n name: \"Name\",\r\n surname: \"Surname\",\r\n department: \"Department\",\r\n officenumber: \"Office Number\",\r\n mobile: \"Mobile\",\r\n email: \"Email\",\r\n company: \"Company Select\",\r\n asset: \"Asset Select\",\r\n location: \"Location Select\",\r\n roleteam: \"Roleteam\",\r\n iasubtype1: \"iasubtype1\",\r\n iasubtype2: \"iasubtype2\",\r\n iasubtype3: \"iasubtype3\",\r\n },\r\n },\r\n },\r\n KMAward: {\r\n abstractsubmission: {\r\n menutitle: \"KM Submission Form\",\r\n fields: {\r\n id: \"Id\",\r\n FunctionGroup: \"Function Group\",\r\n Division: \"Division\",\r\n Deparment: \"Deparment\",\r\n CoP: \"CoP's\",\r\n section: \"Section\",\r\n Name: \"Name\",\r\n Position: \"Position\",\r\n Phone: \"Telephone Number\",\r\n Mobile: \"Mobile Phone Number\",\r\n Email: \"E-mail\",\r\n Url: \"Evident (URL Link)\",\r\n SubmissionType: \"Submission Type\",\r\n Description: \"Description / Evidence\",\r\n Peroid: \"Period\",\r\n PeroidStart: \"Period Start\",\r\n PeroidEnd: \"Period End\",\r\n SubCriteria: \"Sub-Criteria\",\r\n Evidence: \"Evidence\",\r\n Chanel: \"Chanel\",\r\n Benefit: \"Benefit\",\r\n BenefitType: \"Benefit Type\",\r\n BenefitValue: \"Benefit Details\",\r\n CourseAudience: \"No. of Audience\",\r\n Frequency: \"No. of Course / Frequency\",\r\n KnowledgeTopic: \"Knowledge Topic\",\r\n HowToWork: \"How to apply to your work\",\r\n },\r\n },\r\n submissiontable: {\r\n menutitle: \"KM Recognition Submission\",\r\n fields: {\r\n Status: \"Fitter Status\",\r\n Code: \"Fitter Code\",\r\n },\r\n },\r\n KMscreeningtable: {\r\n menutitle: \"KM Screening\",\r\n },\r\n KMscreening: {\r\n menutitle: \"KM Project Screening\",\r\n fields: {\r\n id: \"id\",\r\n Status: \"Screening Status\",\r\n },\r\n },\r\n KMPrinting: {\r\n menutitle: \"KM Projects Printing\",\r\n },\r\n KMAppointmentTable: {\r\n menutitle: \"KM Appointments\",\r\n },\r\n KMAppointment: {\r\n menutitle: \" KM Appointment\",\r\n fields: {\r\n id: \"id\",\r\n Venue: \"Venue\",\r\n Presentation: \"Presentation\",\r\n PresentationStart: \"Start time\",\r\n PresentationEnd: \"End time\",\r\n PresentationReceived: \"Presentation file received\",\r\n Committee: \"Committee\",\r\n Comment: \"Comment\",\r\n AllowEdit: \"Allow edit after deadline\",\r\n ConfirmPresent: \"Accept presentation received\",\r\n },\r\n },\r\n KMAScoring: {\r\n menutitle: \"KM Presentation Scoring\",\r\n },\r\n KMJudgingTable: {\r\n menutitle: \"KM Judging & Award\",\r\n },\r\n KMJudging: {\r\n menutitle: \"KM Judging Submission\",\r\n },\r\n },\r\n MasterData: {\r\n TechnicalForum: {\r\n announcement: {\r\n id: \"id\",\r\n sAnnouncement: \"Announcement\",\r\n sHeadline: \"Headline News\",\r\n cPin: \"Pin\",\r\n },\r\n awardType: {\r\n id: \"id\",\r\n sDiscipline: \"Discipline\",\r\n sSubmissionType: \"Submission Type\",\r\n sOrder: \"Order\",\r\n sAwardName: \"Award Name\",\r\n sStatus: \"Status\",\r\n },\r\n emailTemplate: {\r\n id: \"id\",\r\n sEmailStep: \"Email Step\",\r\n sDescription: \"Description\",\r\n sFrom: \"From\",\r\n cbTo: \"To\",\r\n cbCC: \"CC\",\r\n sSubject: \"Subject\",\r\n sDetail: \"Detail\",\r\n sMoreCC: \"Another recipient\",\r\n },\r\n disiplineYear: {\r\n id: \"id\",\r\n sYear: \"Year\",\r\n sDiscipline: \"Discipline\",\r\n },\r\n scoringYear: {\r\n id: \"id\",\r\n sYear: \"Year\",\r\n sCriteriaType: \"Criteria Type\",\r\n sDiscipline: \"Discipline\",\r\n sCategory: \"Category\",\r\n sCriteria: \"Criteria\",\r\n sMinScore: \"Minimum Score\",\r\n sMaxScore: \"Maximum Score\",\r\n sWeigth: \"Weigth(%)\",\r\n },\r\n usefulLink: {\r\n id: \"id\",\r\n sOrder: \"No\",\r\n sDisplayName: \"Display Name\",\r\n sURL: \"URL\",\r\n },\r\n timeFrame: {\r\n id: \"id\",\r\n EventName1: \"Event Name\",\r\n EventName2: \"Event Name\",\r\n EventName3: \"Event Name\",\r\n EventName4: \"Event Name\",\r\n EventName5: \"Event Name\",\r\n\r\n EventDate1: \"Date Range\",\r\n EventDate2: \"Date Range\",\r\n EventDate3: \"Date Range\",\r\n EventDate4: \"Date Range\",\r\n EventDate5: \"Date Range\",\r\n EventTime: \"Time\",\r\n },\r\n venue: {\r\n id: \"id\",\r\n sRoomName: \"Venue\",\r\n },\r\n event: {\r\n id: \"id\",\r\n sDetail: \"Detail\",\r\n },\r\n guideline: {\r\n id: \"id\",\r\n sDocumentName: \"Document\",\r\n },\r\n userPermission: {\r\n id: \"id\",\r\n sEmpID: \"Employee ID\",\r\n sName: \"Name\",\r\n sSurname: \"Surname\",\r\n sEmail: \"Email\",\r\n sMobileNumber: \"Mobile Number\",\r\n sPosition: \"Position\",\r\n sDivision: \"Division\",\r\n sSection: \"Section\",\r\n sDepartment: \"Department\",\r\n sUsername: \"Username\",\r\n sPassword: \"Password\",\r\n sDisciplince: \"Disciplince\",\r\n }\r\n }\r\n },\r\n EPSpirit: {\r\n submissiontable: {\r\n menutitle: \"EP Spirit Submission\",\r\n },\r\n submissionform: {\r\n menutitle: \"EP Submission Form\",\r\n fields: {\r\n id: \"Id\",\r\n Requester: \"Requester\",\r\n RequestFor: \"Request for\",\r\n FunctionGroup: \"Function Group\",\r\n Division: \"Division\",\r\n Deparment: \"Department\",\r\n section: \"Section\",\r\n Position: \"Position\",\r\n Phone: \"Telephone Number\",\r\n Mobile: \"Mobile Phone Number\",\r\n Email: \"E-mail\",\r\n ProjectTitle: \"Project Title\",\r\n EventDate: \"Date\",\r\n sEmpName: \"Employee\",\r\n sFunctionGroup: \"Function Group\",\r\n sDivOrDept: \"Department / Division\",\r\n sCompany: \"Company\",\r\n sMobile: \"Mobile Phone Number\",\r\n sContribution: \"Contribution\",\r\n\r\n sProjectLeaderName: \"Name\",\r\n sPhoneLeader: \"Telephone No.\",\r\n sMobileLeader: \"Mobile Phone No.\",\r\n sLocationLeader: \"Location\",\r\n\r\n sPresenterName1: \"Name\",\r\n sPhonePresenter1: \"Telephone No.\",\r\n sMobilePresenter1: \"Mobile Phone No.\",\r\n sLocationPresenter1: \"Location\",\r\n\r\n sPresenterName2: \"Name\",\r\n sPhonePresenter2: \"Telephone No.\",\r\n sMobilePresenter2: \"Mobile Phone No.\",\r\n sLocationPresenter2: \"Location\",\r\n },\r\n },\r\n },\r\n },\r\n\r\n auth: {\r\n profile: {\r\n title: \"Edit Profile\",\r\n success: \"Profile updated successfully\",\r\n },\r\n createAnAccount: \"Create an account\",\r\n rememberMe: \"Remember me\",\r\n forgotPassword: \"Forgot password\",\r\n signin: \"Sign in\",\r\n signup: \"Sign up\",\r\n signout: \"Sign out\",\r\n alreadyHaveAnAccount: \"Already have an account? Sign in.\",\r\n signinWithAnotherAccount: \"Sign in with another account\",\r\n emailUnverified: {\r\n message: `Please confirm your email at {0} to continue.`,\r\n submit: `Resend email verification`,\r\n },\r\n emptyPermissions: {\r\n message: `You have no permissions yet. Wait for the admin to grant you privileges.`,\r\n },\r\n passwordResetEmail: {\r\n message: \"Send password reset email\",\r\n error: `Email not recognized`,\r\n },\r\n passwordReset: {\r\n message: \"Reset password\",\r\n },\r\n emailAddressVerificationEmail: {\r\n error: `Email not recognized`,\r\n },\r\n verificationEmailSuccess: `Verification email sent successfully`,\r\n passwordResetEmailSuccess: `Password reset email sent successfully`,\r\n passwordResetSuccess: `Password changed successfully`,\r\n verifyEmail: {\r\n success: \"Email successfully verified\",\r\n message: \"Just a moment, your email is being verified...\",\r\n },\r\n },\r\n\r\n settings: {\r\n title: \"Settings\",\r\n menu: \"Settings\",\r\n save: {\r\n success:\r\n \"Settings saved successfully. The page will reload in {0} seconds for changes to take effect.\",\r\n },\r\n fields: {\r\n primary: \"Primary Color\",\r\n secondary: \"Secondary Color\",\r\n shade: \"Shade\",\r\n },\r\n },\r\n\r\n errors: {\r\n backToHome: \"Back to home\",\r\n 403: `Sorry, you don't have access to this page`,\r\n 404: \"Sorry, the page you visited does not exist\",\r\n 500: \"Sorry, the server is reporting an error\",\r\n forbidden: {\r\n message: \"Forbidden\",\r\n },\r\n validation: {\r\n message: \"An error occurred\",\r\n },\r\n defaultErrorMessage: \"Ops, an error occurred\",\r\n },\r\n // See https://github.com/jquense/yup#using-a-custom-locale-dictionary\r\n /* eslint-disable */\r\n validation: {\r\n mixed: {\r\n default: \"${path} is invalid\",\r\n required: \"${path} is required\",\r\n // required: \"required\",\r\n oneOf: \"${path} must be one of the following values: ${values}\",\r\n notOneOf: \"${path} must not be one of the following values: ${values}\",\r\n notType: ({ path, type, value, originalValue }) => {\r\n return `${path} must be a ${type}`;\r\n },\r\n },\r\n string: {\r\n length: \"${path} must be exactly ${length} characters\",\r\n min: \"${path} must be at least ${min} characters\",\r\n // max: \"${path} must be at most ${max} characters\",\r\n max: \"must be at most ${max} characters\",\r\n // matches: '${path} must match the following: \"${regex}\"',\r\n matches: \"${path} not match format\",\r\n email: \"${path} must be a valid email\",\r\n url: \"${path} must be a valid URL\",\r\n trim: \"${path} must be a trimmed string\",\r\n lowercase: \"${path} must be a lowercase string\",\r\n uppercase: \"${path} must be a upper case string\",\r\n selected: \"${path} must be selected\",\r\n // selected: \"require\",\r\n },\r\n number: {\r\n min: \"${path} must be greater than or equal to ${min}\",\r\n max: \"${path} must be less than or equal to ${max}\",\r\n lessThan: \"${path} must be less than ${less}\",\r\n moreThan: \"${path} must be greater than ${more}\",\r\n notEqual: \"${path} must be not equal to ${notEqual}\",\r\n positive: \"${path} must be a positive number\",\r\n negative: \"${path} must be a negative number\",\r\n integer: \"${path} must be an integer\",\r\n },\r\n date: {\r\n min: \"${path} field must be later than ${min}\",\r\n max: \"${path} field must be at earlier than ${max}\",\r\n },\r\n boolean: {},\r\n object: {\r\n noUnknown:\r\n \"${path} field cannot have keys not specified in the object shape\",\r\n },\r\n array: {\r\n min: \"${path} field must have at least ${min} items\",\r\n max: \"${path} field must have less than or equal to ${max} items\",\r\n },\r\n },\r\n /* eslint-disable */\r\n fileUploader: {\r\n upload: \"Upload\",\r\n image: \"You must upload an image\",\r\n size: \"File is too big. Max allowed size is {0}\",\r\n formats: `Invalid format. Must be '{0}'.`,\r\n },\r\n importer: {\r\n line: \"Line\",\r\n status: \"Status\",\r\n pending: \"Pending\",\r\n imported: \"Imported\",\r\n error: \"Error\",\r\n total: `{0} imported, {1} pending and {2} with error`,\r\n importedMessage: `Processed {0} of {1}.`,\r\n noNavigateAwayMessage:\r\n \"Do not navigate away from this page or import will be stopped.\",\r\n completed: {\r\n success: \"Import completed. All rows were successfully imported.\",\r\n someErrors:\r\n \"Processing completed, but some rows were unable to be imported.\",\r\n allErrors: \"Import failed. There are no valid rows.\",\r\n },\r\n form: {\r\n downloadTemplate: \"Download the template\",\r\n hint: \"Click or drag the file to this area to continue\",\r\n },\r\n list: {\r\n discardConfirm: \"Are you sure? Non-imported data will be lost.\",\r\n },\r\n errors: {\r\n invalidFileEmpty: \"The file is empty\",\r\n invalidFileExcel: \"Only excel (.xlsx) files are allowed\",\r\n invalidFileUpload:\r\n \"Invalid file. Make sure you are using the last version of the template.\",\r\n importHashRequired: \"Import hash is required\",\r\n importHashExistent: \"Data has already been imported\",\r\n },\r\n },\r\n\r\n autocomplete: {\r\n loading: \"Loading...\",\r\n noOptions: \"No data found\",\r\n },\r\n\r\n imagesViewer: {\r\n noImage: \"No image\",\r\n },\r\n\r\n table: {\r\n noData: \"No data found\",\r\n loading: \"Loading...\",\r\n },\r\n\r\n pagination: {\r\n labelDisplayedRows: \"{0}-{1} of {2}\",\r\n labelRowsPerPage: \"Per page:\",\r\n },\r\n};\r\n\r\nexport default en;\r\n","import React from \"react\";\r\nimport _get from \"lodash/get\";\r\nimport moment from \"moment\";\r\nimport { setLocale as setYupLocale } from \"yup\";\r\nimport en from \"../i18n/en\";\r\n\r\nlet currentLanguageCode = null;\r\n\r\nconst languages = {\r\n en: {\r\n id: \"en\",\r\n label: \"English\",\r\n //flag: '/images/flags/24/United-States.png',\r\n dictionary: en,\r\n dateFns: undefined,\r\n },\r\n};\r\n\r\nfunction init() {\r\n currentLanguageCode = localStorage.getItem(\"language\") || \"en\";\r\n setLanguageCode(currentLanguageCode);\r\n}\r\n\r\nexport function getLanguage() {\r\n return languages[getLanguageCode()];\r\n}\r\n\r\nfunction format(message, args) {\r\n if (!message) {\r\n return null;\r\n }\r\n\r\n try {\r\n return message.replace(/{(\\d+)}/g, function (match, number) {\r\n return typeof args[number] != \"undefined\" ? args[number] : match;\r\n });\r\n } catch (error) {\r\n console.error(message, error);\r\n throw error;\r\n }\r\n}\r\n\r\nexport function getLanguages() {\r\n return Object.keys(languages).map((language) => {\r\n return languages[language];\r\n });\r\n}\r\n\r\nexport function getLanguageCode() {\r\n if (!currentLanguageCode) {\r\n init();\r\n }\r\n\r\n return currentLanguageCode;\r\n}\r\n\r\nexport function setLanguageCode(arg) {\r\n if (!languages[arg]) {\r\n throw new Error(`Invalid language ${arg}.`);\r\n }\r\n\r\n moment.locale(arg);\r\n localStorage.setItem(\"language\", arg);\r\n\r\n if (getLanguage().dictionary.validation) {\r\n setYupLocale(getLanguage().dictionary.validation);\r\n }\r\n}\r\n\r\nexport function i18nExists(key) {\r\n const message = _get(getLanguage().dictionary, key);\r\n return !!message;\r\n}\r\n\r\nexport function i18n(key, ...args) {\r\n const message = _get(getLanguage().dictionary, key);\r\n\r\n if (!message) {\r\n return key;\r\n }\r\n\r\n return format(message, args);\r\n}\r\n\r\nexport function i18nHtml(key, ...args) {\r\n return (\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { emphasize } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport '../../../Styles/Fonts/Kanit/css/fonts.css';\r\nexport const styles = (theme) => ({\r\n root: {\r\n flexGrow: 1,\r\n height: 250,\r\n minWidth: 290,\r\n fontFamily: \"Kanit\"\r\n },\r\n input: {\r\n display: 'flex',\r\n padding: 0,\r\n height: 'auto',\r\n minHeight: '41px',\r\n 'margin-top': '4px',\r\n },\r\n valueContainer: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n flex: 1,\r\n alignItems: 'center',\r\n overflow: 'hidden',\r\n fontFamily: \"Kanit\",\r\n paddingLeft: theme.spacing(2),\r\n },\r\n chip: {\r\n margin: theme.spacing(0.5, 0.25),\r\n },\r\n chipFocused: {\r\n backgroundColor: emphasize(\r\n theme.palette.type === 'light'\r\n ? theme.palette.grey[300]\r\n : theme.palette.grey[700],\r\n 0.08,\r\n ),\r\n },\r\n noOptionsMessage: {\r\n padding: theme.spacing(1, 2),\r\n },\r\n singleValue: {\r\n fontSize: 16,\r\n },\r\n placeholder: {\r\n position: 'absolute',\r\n left: 2,\r\n bottom: 6,\r\n fontSize: 16,\r\n },\r\n paper: {\r\n position: 'absolute',\r\n zIndex: 2,\r\n marginTop: theme.spacing(1),\r\n left: 0,\r\n right: 0,\r\n },\r\n divider: {\r\n height: theme.spacing(2),\r\n },\r\n});\r\n\r\nfunction NoOptionsMessage(props) {\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n\r\nNoOptionsMessage.propTypes = {\r\n /**\r\n * The children to be rendered.\r\n */\r\n children: PropTypes.node,\r\n /**\r\n * Props to be passed on to the wrapper.\r\n */\r\n innerProps: PropTypes.object,\r\n selectProps: PropTypes.object,\r\n};\r\n\r\nfunction inputComponent({ inputRef, ...props }) {\r\n return
;\r\n}\r\n\r\ninputComponent.propTypes = {\r\n inputRef: PropTypes.oneOfType([\r\n PropTypes.func,\r\n PropTypes.shape({\r\n current: PropTypes.any,\r\n }),\r\n ]),\r\n};\r\n\r\nfunction Control(props) {\r\n const {\r\n children,\r\n innerProps,\r\n innerRef,\r\n selectProps: { classes, TextFieldProps },\r\n } = props;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nControl.propTypes = {\r\n /**\r\n * Children to render.\r\n */\r\n children: PropTypes.node,\r\n /**\r\n * The mouse down event and the innerRef to pass down to the controller element.\r\n */\r\n innerProps: PropTypes.shape({\r\n onMouseDown: PropTypes.func,\r\n }),\r\n innerRef: PropTypes.oneOfType([\r\n PropTypes.oneOf([null]),\r\n PropTypes.func,\r\n PropTypes.shape({\r\n current: PropTypes.any,\r\n }),\r\n ]),\r\n selectProps: PropTypes.object,\r\n};\r\n\r\nfunction Option(props) {\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n\r\nOption.propTypes = {\r\n /**\r\n * The children to be rendered.\r\n */\r\n children: PropTypes.node,\r\n /**\r\n * props passed to the wrapping element for the group.\r\n */\r\n innerProps: PropTypes.shape({\r\n id: PropTypes.string,\r\n key: PropTypes.string,\r\n onClick: PropTypes.func,\r\n onMouseMove: PropTypes.func,\r\n onMouseOver: PropTypes.func,\r\n tabIndex: PropTypes.number,\r\n }),\r\n /**\r\n * Inner ref to DOM Node\r\n */\r\n innerRef: PropTypes.oneOfType([\r\n PropTypes.oneOf([null]),\r\n PropTypes.func,\r\n PropTypes.shape({\r\n current: PropTypes.any,\r\n }),\r\n ]),\r\n /**\r\n * Whether the option is focused.\r\n */\r\n isFocused: PropTypes.bool,\r\n /**\r\n * Whether the option is selected.\r\n */\r\n isSelected: PropTypes.bool,\r\n isDisabled: PropTypes.bool,\r\n};\r\n\r\nfunction Placeholder(props) {\r\n const { selectProps, innerProps = {}, children } = props;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nPlaceholder.propTypes = {\r\n /**\r\n * The children to be rendered.\r\n */\r\n children: PropTypes.node,\r\n /**\r\n * props passed to the wrapping element for the group.\r\n */\r\n innerProps: PropTypes.object,\r\n selectProps: PropTypes.object,\r\n};\r\n\r\nfunction SingleValue(props) {\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n\r\nSingleValue.propTypes = {\r\n /**\r\n * The children to be rendered.\r\n */\r\n children: PropTypes.node,\r\n /**\r\n * Props passed to the wrapping element for the group.\r\n */\r\n innerProps: PropTypes.any,\r\n selectProps: PropTypes.object,\r\n};\r\n\r\nfunction ValueContainer(props) {\r\n return (\r\n \r\n {props.children}\r\n
\r\n );\r\n}\r\n\r\nValueContainer.propTypes = {\r\n /**\r\n * The children to be rendered.\r\n */\r\n children: PropTypes.node,\r\n selectProps: PropTypes.object,\r\n};\r\n\r\nfunction MultiValue(props) {\r\n return (\r\n }\r\n />\r\n );\r\n}\r\n\r\nMultiValue.propTypes = {\r\n children: PropTypes.node,\r\n isFocused: PropTypes.bool,\r\n removeProps: PropTypes.shape({\r\n onClick: PropTypes.func,\r\n onMouseDown: PropTypes.func,\r\n onTouchEnd: PropTypes.func,\r\n }),\r\n selectProps: PropTypes.object,\r\n};\r\n\r\nfunction Menu(props) {\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n\r\nMenu.propTypes = {\r\n /**\r\n * The children to be rendered.\r\n */\r\n children: PropTypes.element,\r\n /**\r\n * Props to be passed to the menu wrapper.\r\n */\r\n innerProps: PropTypes.object,\r\n selectProps: PropTypes.object,\r\n};\r\n\r\nexport const components = {\r\n Control,\r\n Menu,\r\n MultiValue,\r\n NoOptionsMessage,\r\n Option,\r\n Placeholder,\r\n SingleValue,\r\n ValueContainer,\r\n};\r\n","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport FormErrors from \"./formErrors\";\r\nimport { Field } from \"formik\";\r\nimport Select from \"react-select\";\r\nimport makeAnimated from 'react-select/animated';\r\nimport { i18n } from \"../../i18n\";\r\nimport {\r\n components as materialUiComponents,\r\n styles as materialUiStyles,\r\n} from \"./MaterialUI/reactSelectMaterialUi\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport { Tune } from \"@material-ui/icons\";\r\nconst animatedComponents = makeAnimated();\r\n\r\nexport class SelectFormItemNotFastLogin extends Component {\r\n value = () => {\r\n const { mode } = this.props;\r\n if (mode === \"multiple\") {\r\n return this.valueMultiple();\r\n } else {\r\n return this.valueOne();\r\n }\r\n };\r\n\r\n valueMultiple = () => {\r\n const { form, name, options } = this.props;\r\n\r\n if (form.values[name]) {\r\n return form.values[name].map((value) =>\r\n options.find((option) => option.value === value)\r\n );\r\n }\r\n\r\n return [];\r\n };\r\n\r\n valueOne = () => {\r\n const { form, name, options } = this.props;\r\n\r\n if (form.values[name]) {\r\n return options.find((option) => option.value === form.values[name]);\r\n }\r\n\r\n return \"\";\r\n };\r\n\r\n handleSelect = (data) => {\r\n const { form, name } = this.props;\r\n form.setFieldTouched(name);\r\n const { mode } = this.props;\r\n if (mode === \"multiple\") {\r\n return this.handleSelectMultiple(data);\r\n } else {\r\n return this.handleSelectOne(data);\r\n }\r\n };\r\n\r\n handleSelectMultiple = (values) => {\r\n const { form, name, onChangeMultiSelect } = this.props;\r\n\r\n if (!values) {\r\n form.setFieldValue(name, []);\r\n if (onChangeMultiSelect) {\r\n onChangeMultiSelect(form, []);\r\n }\r\n return;\r\n } else {\r\n if (onChangeMultiSelect) {\r\n onChangeMultiSelect(form, values);\r\n }\r\n }\r\n\r\n form.setFieldValue(\r\n name,\r\n values.map((data) => (data ? data.value : undefined)).filter(Boolean)\r\n );\r\n };\r\n\r\n handleSelectOne = (data) => {\r\n const { form, name, onSetSelect, allValues } = this.props;\r\n\r\n if (onSetSelect) {\r\n\r\n // SET VALUE ตรงนึ้\r\n onSetSelect(form, data ? data.value : \"\");\r\n }\r\n\r\n if (!data) {\r\n form.setFieldValue(name, '');\r\n return;\r\n }\r\n\r\n\r\n form.setFieldValue(name, data.value);\r\n\r\n };\r\n\r\n render() {\r\n const {\r\n name,\r\n label,\r\n form,\r\n hint,\r\n options,\r\n disable,\r\n errorMessage,\r\n required,\r\n mode,\r\n placeholder,\r\n isClearable,\r\n classes,\r\n onChangeMultiSelect,\r\n startAdornment\r\n } = this.props;\r\n const isInvalid = !!FormErrors.displayableError(form, name, errorMessage);\r\n\r\n const controlStyles = {\r\n container: (provided) => ({\r\n ...provided,\r\n width: \"100%\",\r\n marginTop: \"16px\",\r\n marginBottom: \"8px\",\r\n\r\n }),\r\n control: (provided) => ({\r\n ...provided,\r\n borderColor: isInvalid ? \"red\" : undefined,\r\n }),\r\n dropdownIndicator: base => ({\r\n ...base,\r\n cursor: \"pointer\"\r\n }),\r\n indicatorsContainer: base => ({\r\n ...base,\r\n cursor: \"pointer\"\r\n }),\r\n };\r\n\r\n\r\n return (\r\n\r\n {this.TextFieldProps.InputLabelProps.shrink=true}}\r\n value={this.value()}\r\n onChange={this.handleSelect}\r\n inputId={name}\r\n isDisabled={disable || false}\r\n placeholder={placeholder || \"\"}\r\n isMulti={mode === \"multiple\"}\r\n isClearable={isClearable}\r\n loadingMessage={() => i18n(\"autocomplete.loading\")}\r\n noOptionsMessage={() => i18n(\"autocomplete.noOptions\")}\r\n tabIndex=\"999\"\r\n />\r\n );\r\n }\r\n}\r\n\r\nSelectFormItemNotFastLogin.defaultProps = {\r\n required: false,\r\n isClearable: true,\r\n};\r\n\r\nSelectFormItemNotFastLogin.propTypes = {\r\n form: PropTypes.object.isRequired,\r\n name: PropTypes.string.isRequired,\r\n options: PropTypes.array.isRequired,\r\n label: PropTypes.string,\r\n hint: PropTypes.string,\r\n required: PropTypes.bool,\r\n errorMessage: PropTypes.string,\r\n mode: PropTypes.string,\r\n isClearable: PropTypes.bool,\r\n onChangeMultiSelect: PropTypes.func\r\n};\r\n\r\nclass SelectFormItemLogin extends Component {\r\n render() {\r\n return (\r\n \r\n {({ form }) => (\r\n\r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(materialUiStyles)(SelectFormItemLogin);\r\n","import React, { Fragment, useState, useEffect } from 'react';\r\nimport LockIcon from '@material-ui/icons/Lock';\r\nimport { Button, CarouselItem, Carousel, CarouselIndicators } from 'reactstrap';\r\nimport InputAdornment from '@material-ui/core/InputAdornment/InputAdornment';\r\nimport { FnBlock_UI, AxiosPost, ResultAPI, Process_System, AlertTitle, SwAlert, Encrypt } from './SysComponent/SystemComponent';\r\nimport { Formik, Form } from \"formik\";\r\nimport * as yup from 'yup';\r\nimport InputFormItemLogin from './form/InputFormItemLogin'\r\nimport { AccountCircle } from '@material-ui/icons';\r\nimport { Link } from 'react-router-dom';\r\nimport { ChangePassword, ChangePasswordUser } from './ChangePassword';\r\nimport { ForgotPassword, ForgotPasswordData } from './ForgotPassword';\r\nimport { DialogFroala } from '../components/DialogComponents/DialogFroala';\r\nimport bg1 from '../Images/Background/1.png';\r\nimport SelectFormItemLogin from '../components/form/SelectFormItemLogin';\r\nimport BusinessIcon from '@material-ui/icons/Business';\r\nimport { List as LINQ } from 'linqts';\r\nconst sController = \"Login\";\r\n\r\nconst items = [\r\n {\r\n src: bg1,\r\n },\r\n // {\r\n // src: bg2,\r\n // },\r\n // {\r\n // src: bg3,\r\n // }\r\n];\r\n\r\nconst Login = () => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const [modal, setModal] = useState(false);\r\n const [modalForgot, setModalForgot] = useState(false);\r\n\r\n const [activeIndex, setActiveIndex] = useState(0);\r\n const [animating, setAnimating] = useState(false);\r\n const [lstCompany, setlstCompany] = useState([] as any[]);\r\n\r\n const [fromMailData, setfromMailData] = useState({ Action_: \"\", sEvdete_: \"\", sEvreport_: \"\" });\r\n const next = () => {\r\n if (animating) return;\r\n const nextIndex = activeIndex === items.length - 1 ? 0 : activeIndex + 1;\r\n setActiveIndex(nextIndex);\r\n }\r\n\r\n const previous = () => {\r\n if (animating) return;\r\n const nextIndex = activeIndex === 0 ? items.length - 1 : activeIndex - 1;\r\n setActiveIndex(nextIndex);\r\n }\r\n\r\n const goToIndex = (newIndex: React.SetStateAction) => {\r\n if (animating) return;\r\n setActiveIndex(newIndex);\r\n }\r\n\r\n const slides = items.map((item) => {\r\n return (\r\n setAnimating(true)}\r\n onExited={() => setAnimating(false)}\r\n key={item.src}\r\n className=\"bg-mobile\"\r\n >\r\n \r\n \r\n );\r\n });\r\n\r\n\r\n const fnInitialDataUser = {\r\n txtUserID: \"\",\r\n txtPassword: \"\",\r\n txtCompany: \"\",\r\n };\r\n\r\n const validateUserInfo = yup.object().shape({\r\n txtCompany: yup.string().required('Please Specify Company'),\r\n txtUserID: yup.string().required('Please Specify Username'),\r\n txtPassword: yup.string().required('Please Specify Password'),\r\n });\r\n\r\n const CheckSession = async () => {\r\n let params = new URLSearchParams(window.location.search)\r\n let ID = params.get('strid');//mode AD\r\n let sAction = params.get('action')||params.get('action_');//1 Weekly 2 Mouthly 3 Yealy 4 Summary Report 5 Detail Report\r\n let sEvdete = params.get('evdete');//วันที่เหตุการ\r\n let sEvreport = params.get('evreport');//EventID\r\n let obj = {\r\n 'sAction': sAction != null ? sAction : \"\",\r\n 'sEvdete': sEvdete != null ? sEvdete : \"\",\r\n 'sEvreport': sEvreport != null ? sEvreport : \"\"\r\n }\r\n await AxiosPost(sController + \"/CheckSession\", obj, (response) => {\r\n setfromMailData({ ...fromMailData, Action_: response.sAction, sEvdete_: response.sEvdete, sEvreport_: response.sEvreport });\r\n if (response.sStatus === Process_System.process_Success) {\r\n if (response.sAction === \"4\") {\r\n var elLink = document.getElementById(\"lnkToEventRecord\") as any;\r\n if (elLink) {\r\n var ke = elLink.pathname + \"?ID=\" + Encrypt(response.sEvreport + \"\") + \"&Mode=\" + Encrypt(\"Report\");\r\n window.location.href = ke;\r\n }\r\n } else if (response.sAction === \"5\") {\r\n var elLink = document.getElementById(\"lnkToEventRecord\") as any;\r\n if (elLink) {\r\n var ke = elLink.pathname + \"?ID=\" + Encrypt(response.sEvreport + \"\") + \"&Mode=\" + Encrypt(\"Report\");\r\n window.location.href = ke;\r\n }\r\n } else if (response.sAction === \"1\") {\r\n var elLink = document.getElementById(\"lnkToEventWeekly\") as any;\r\n if (elLink) {\r\n var ke = elLink.pathname + \"?Weekly=\" + Encrypt(response.sEvdete + \"\") + \"&Mode=\" + Encrypt(\"Report\");\r\n window.location.href = ke;\r\n }\r\n } else if (response.sAction === \"2\") {\r\n var elLink = document.getElementById(\"lnkToEventMonthly\") as any;\r\n if (elLink) {\r\n var ke = elLink.pathname + \"?Monthly=\" + Encrypt(response.sEvdete + \"\") + \"&Mode=\" + Encrypt(\"Enail\");\r\n window.location.href = ke;\r\n }\r\n } else if (response.sAction === \"3\") {\r\n var elLink = document.getElementById(\"lnkToEventYearly\") as any;\r\n if (elLink) {\r\n var ke = elLink.pathname + \"?Yearly=\" + Encrypt(response.sEvdete + \"\") + \"&Mode=\" + Encrypt(\"Enail\");\r\n window.location.href = ke;\r\n }\r\n } else if (response.sAction === \"10\") {\r\n var elLink = document.getElementById(\"lnkToEventReportAbnormal\") as any;\r\n if (elLink) {\r\n var ke = elLink.pathname + \"?Abnormal=\" + Encrypt(response.sEvdete + \"\") + \"&Mode=\" + Encrypt(\"Enail\");\r\n window.location.href = ke;\r\n }\r\n } else if (response.sAction === \"101\") {\r\n var elLink = document.getElementById(\"lnkTo\") as any;\r\n if (elLink)\r\n elLink.click();\r\n }else if (response.sAction === \"102\") {\r\n var elLink = document.getElementById(\"lnkUserPermission\") as any;\r\n if (elLink)\r\n elLink.click();\r\n } else {\r\n\r\n var elLink = document.getElementById(\"lnkToEventRecord\") as any;\r\n if (elLink)\r\n elLink.click();\r\n }\r\n } else {\r\n if (ID != undefined && ID != null && ID != \"\") {\r\n onLoginAD(ID, response);\r\n }\r\n }\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n const onLoad = () => {\r\n AxiosPost(sController + \"/onLoad\", {}, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setlstCompany(response.lstCompyne);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n useEffect(() => {\r\n CheckSession();\r\n onLoad();\r\n }, []);\r\n\r\n const onLoginAD = (srt, responseCr) => {\r\n let obj = {\r\n 'sUsername': srt,\r\n 'sPassword': \"\",\r\n 'sMode': \"AD\"\r\n };\r\n BlockUI();\r\n AxiosPost(sController + \"/Login\", obj, (response) => {\r\n UnBlockUI();\r\n if (response.sStatus === Process_System.process_Error) {\r\n SwAlert.Warning(AlertTitle.Warning, response.sMsg, () => {\r\n var elLink = document.getElementById(\"lnkToLogout\") as any;\r\n if (elLink) {\r\n var ke = elLink.pathname;\r\n window.location.href = ke;\r\n }\r\n });\r\n } else if (response.sStatus === Process_System.process_Success) {\r\n if (responseCr.sAction === \"4\") {\r\n var elLink = document.getElementById(\"lnkToEventRecord\") as any;\r\n if (elLink) {\r\n var ke = elLink.pathname + \"?ID=\" + Encrypt(responseCr.sEvreport + \"\") + \"&Mode=\" + Encrypt(\"Report\");\r\n window.location.href = ke;\r\n }\r\n } else if (responseCr.sAction === \"5\") {\r\n var elLink = document.getElementById(\"lnkToEventRecord\") as any;\r\n if (elLink) {\r\n var ke = elLink.pathname + \"?ID=\" + Encrypt(responseCr.sEvreport + \"\") + \"&Mode=\" + Encrypt(\"Report\");\r\n window.location.href = ke;\r\n }\r\n } else if (responseCr.sAction === \"1\") {\r\n var elLink = document.getElementById(\"lnkToEventWeekly\") as any;\r\n if (elLink) {\r\n var ke = elLink.pathname + \"?Weekly=\" + Encrypt(responseCr.sEvdete + \"\") + \"&Mode=\" + Encrypt(\"Report\");\r\n window.location.href = ke;\r\n }\r\n } else if (responseCr.sAction === \"2\") {\r\n var elLink = document.getElementById(\"lnkToEventMonthly\") as any;\r\n if (elLink) {\r\n var ke = elLink.pathname + \"?Monthly=\" + Encrypt(responseCr.sEvdete + \"\") + \"&Mode=\" + Encrypt(\"Enail\");\r\n window.location.href = ke;\r\n }\r\n } else if (responseCr.sAction === \"3\") {\r\n var elLink = document.getElementById(\"lnkToEventYearly\") as any;\r\n if (elLink) {\r\n var ke = elLink.pathname + \"?Yearly=\" + Encrypt(responseCr.sEvdete + \"\") + \"&Mode=\" + Encrypt(\"Enail\");\r\n window.location.href = ke;\r\n }\r\n } else if (responseCr.sAction === \"10\") {\r\n var elLink = document.getElementById(\"lnkToEventReportAbnormal\") as any;\r\n if (elLink) {\r\n var ke = elLink.pathname + \"?Abnormal=\" + Encrypt(responseCr.sEvdete + \"\") + \"&Mode=\" + Encrypt(\"Enail\");\r\n window.location.href = ke;\r\n }\r\n } else if (response.sAction === \"101\") {\r\n var elLink = document.getElementById(\"lnkTo\") as any;\r\n var elLink = document.getElementById(\"lnkTo\") as any;\r\n if (elLink)\r\n elLink.click();\r\n }else if (response.sAction === \"102\") {\r\n var elLink = document.getElementById(\"lnkUserPermission\") as any;\r\n if (elLink)\r\n elLink.click();\r\n } else {\r\n var arr = new LINQ(response.lstGroupUser).ToList();\r\n if (arr.Any(a => a.nGroupID === 4)) {\r\n var elLink = document.getElementById(\"lnkTo\") as any;\r\n if (elLink)\r\n elLink.click();\r\n } else if (arr.Any(a => a.nGroupID === 5)) {\r\n var elLink = document.getElementById(\"lnkToEventToday\") as any;\r\n if (elLink)\r\n elLink.click();\r\n } else {\r\n var elLink = document.getElementById(\"lnkToEventRecord\") as any;\r\n if (elLink)\r\n elLink.click();\r\n }\r\n }\r\n }\r\n })\r\n // }, () => { }, BlockUI, UnBlockUI)\r\n\r\n };\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [ChangePasswordData, setChangePasswordData] = React.useState({} as ChangePasswordUser);\r\n\r\n const handleClose = (value: string) => {\r\n setOpen(false);\r\n };\r\n\r\n const onLogin = (formProps) => {\r\n let obj = {\r\n 'sUsername': formProps.txtUserID,\r\n 'sPassword': formProps.txtPassword,\r\n 'nCompanyID': +formProps.txtCompany,\r\n 'sMode': \"\"\r\n };\r\n BlockUI();\r\n\r\n AxiosPost(sController + \"/Login\", obj, (response) => {\r\n UnBlockUI();\r\n // ResultAPI(false, response, null, () => {\r\n\r\n if (response.sStatus === Process_System.process_Error) {\r\n if (response.isChangePassword) {\r\n setChangePasswordData(\r\n {\r\n UserID: response.nUserID,\r\n CompanyID: response.nCompanyID,\r\n UserName: response.sUserName,\r\n isAlert90D: true\r\n });\r\n\r\n SwAlert.Warning(AlertTitle.Warning, response.sMsg, () => {\r\n setOpen(true);\r\n });\r\n } else {\r\n SwAlert.Warning(AlertTitle.Warning, response.sMsg, () => { });\r\n }\r\n } else if (response.sStatus === Process_System.process_Success) {\r\n if (fromMailData.Action_ === \"4\") {\r\n var elLink = document.getElementById(\"lnkToEventRecord\") as any;\r\n if (elLink) {\r\n var ke = elLink.pathname + \"?ID=\" + Encrypt(fromMailData.sEvreport_ + \"\") + \"&Mode=\" + Encrypt(\"Report\");\r\n window.location.href = ke;\r\n }\r\n } else if (fromMailData.Action_ === \"5\") {\r\n var elLink = document.getElementById(\"lnkToEventRecord\") as any;\r\n if (elLink) {\r\n var ke = elLink.pathname + \"?ID=\" + Encrypt(fromMailData.sEvreport_ + \"\") + \"&Mode=\" + Encrypt(\"Report\");\r\n window.location.href = ke;\r\n }\r\n } else if (fromMailData.Action_ === \"1\") {\r\n var elLink = document.getElementById(\"lnkToEventWeekly\") as any;\r\n if (elLink) {\r\n var ke = elLink.pathname + \"?Weekly=\" + Encrypt(fromMailData.sEvdete_ + \"\") + \"&Mode=\" + Encrypt(\"Enail\");\r\n window.location.href = ke;\r\n }\r\n } else if (fromMailData.Action_ === \"2\") {\r\n var elLink = document.getElementById(\"lnkToEventMonthly\") as any;\r\n if (elLink) {\r\n var ke = elLink.pathname + \"?Monthly=\" + Encrypt(fromMailData.sEvdete_ + \"\") + \"&Mode=\" + Encrypt(\"Enail\");\r\n window.location.href = ke;\r\n }\r\n } else if (fromMailData.Action_ === \"3\") {\r\n var elLink = document.getElementById(\"lnkToEventYearly\") as any;\r\n if (elLink) {\r\n var ke = elLink.pathname + \"?Yearly=\" + Encrypt(fromMailData.sEvdete_ + \"\") + \"&Mode=\" + Encrypt(\"Enail\");\r\n window.location.href = ke;\r\n }\r\n } else if (fromMailData.Action_ === \"10\") {\r\n var elLink = document.getElementById(\"lnkToEventReportAbnormal\") as any;\r\n if (elLink) {\r\n var ke = elLink.pathname + \"?Abnormal=\" + Encrypt(fromMailData.sEvdete_ + \"\") + \"&Mode=\" + Encrypt(\"Enail\");\r\n window.location.href = ke;\r\n }\r\n } else if (fromMailData.Action_=== \"101\") {\r\n var elLink = document.getElementById(\"lnkTo\") as any;\r\n if (elLink)\r\n elLink.click();\r\n }else if (fromMailData.Action_ === \"102\") {\r\n var elLink = document.getElementById(\"lnkUserPermission\") as any;\r\n if (elLink)\r\n elLink.click();\r\n } else if (fromMailData.Action_ === \"0\") {\r\n var elLink = document.getElementById(\"lnkToEventRecord\") as any;\r\n if (elLink)\r\n elLink.click();\r\n } else {\r\n\r\n var arr = new LINQ(response.lstGroupUser).ToList();\r\n if (arr.Any(a => a.nGroupID === 4)) {\r\n var elLink = document.getElementById(\"lnkTo\") as any;\r\n if (elLink)\r\n elLink.click();\r\n } else if (arr.Any(a => a.nGroupID === 5)) {\r\n var elLink = document.getElementById(\"lnkToEventToday\") as any;\r\n if (elLink)\r\n elLink.click();\r\n } else {\r\n var elLink = document.getElementById(\"lnkToEventRecord\") as any;\r\n if (elLink)\r\n elLink.click();\r\n }\r\n }\r\n }\r\n })\r\n // }, () => { }, BlockUI, UnBlockUI)\r\n\r\n };\r\n\r\n const popupChangePasswor = () => {\r\n setOpen(true);\r\n setChangePasswordData(\r\n {\r\n UserID: 0,\r\n CompanyID: 0,\r\n UserName: \"\",\r\n isAlert90D: false\r\n });\r\n };\r\n //# region Forgot password\r\n const [openForgot, setForgotOpen] = React.useState(false);\r\n const [Forgot_PasswordData, setForgot_PasswordData] = React.useState({} as ForgotPasswordData);\r\n const handleForgotClose = (value: string) => {\r\n setForgotOpen(false);\r\n };\r\n const popupForgotPassword = () => {\r\n setForgotOpen(true);\r\n setForgot_PasswordData(\r\n {\r\n UserNameOrEmail: \"\",\r\n });\r\n };\r\n const [openContactUs, setOpenContactUs] = React.useState({ EventType: false, Remark: false });\r\n const handleContactUsClose = (value: string) => {\r\n setOpenContactUs({ ...openContactUs, Remark: false });\r\n };\r\n const [sNote, setNote] = React.useState(\"\" as string);\r\n // const handleCloseRemark = (value: string) => {\r\n // setOpenContactUs({ ...openContactUs, Remark: false });\r\n // };\r\n const popupRemark = (sNote) => {\r\n setOpenContactUs({ ...openContactUs, Remark: true });\r\n setNote(sNote);\r\n };\r\n\r\n const LoadDataContactUs = () => {\r\n let qbj = {\r\n nID: null,\r\n };\r\n AxiosPost(sController + \"/ContactUsData\", qbj, (response) => {\r\n if (response != null) {\r\n popupRemark(response.sContent);\r\n }\r\n else { popupRemark(''); }\r\n\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n const FimLogin = React.useCallback(() => {\r\n return (\r\n \r\n {(formProps) => {\r\n return (\r\n
\r\n
SIGN IN
\r\n
\r\n \r\n \r\n \r\n } />\r\n
\r\n
\r\n \r\n \r\n \r\n } />\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n } />\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {/* */}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n {/* */}\r\n
\r\n
\r\n
\r\n
\r\n\r\n {/*
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
*/}\r\n
\r\n )\r\n }\r\n }\r\n \r\n )\r\n }, [lstCompany]);\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 {/* reponsive login */}\r\n \r\n \r\n {slides}\r\n \r\n {/*
*/}\r\n\r\n
\r\n\r\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 Login;\r\n\r\n","import React, { Fragment, useState, useEffect } from 'react';\r\n\r\nimport '../MasterPage/MP_Front.css';\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport { Link } from 'react-router-dom';\r\nimport CreateReport from '../CreateReport';\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport logo from '../../../Images/ico-pttgrp.png';\r\nimport footer from '../../../Images/Footer Address/Logo.png';\r\nimport { AxiosPost, ResultAPI, lnkToLogin, FnBlock_UI, Process_System } from 'components/SysComponent/SystemComponent';\r\nimport { List as LINQ } from 'linqts';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport { makeStyles, Button, IconButton } from '@material-ui/core';\r\nimport { blue } from '@material-ui/core/colors';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\nconst sController = \"MP_Front\";\r\n\r\nconst useStyles = makeStyles({\r\n avatar: {\r\n backgroundColor: blue[100],\r\n color: blue[600],\r\n },\r\n});\r\n\r\nexport interface SimpleDialogProps {\r\n open: boolean;\r\n data: any[];\r\n onClose: (value: string) => void;\r\n}\r\n\r\nfunction SimpleDialog(props: SimpleDialogProps) {\r\n const classes = useStyles();\r\n const { onClose, open, data } = props;\r\n\r\n const handleClose = () => {\r\n onClose(\"\");\r\n };\r\n\r\n const handleListItemClick = (value: string) => {\r\n onClose(value);\r\n };\r\n\r\n return (\r\n \r\n Group User\r\n \r\n {data.map((item, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\nconst Layout_Front = (Props: any) => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI()\r\n const [objMenu, setObjMenu] = useState({\r\n isVisible: true,\r\n IsopenPage: \"\",\r\n isSideNav: true,\r\n sFullUserName: \"\",\r\n sCompanyName: \"\",\r\n sGroupUserName: \"\",\r\n lstGroupUser: [],\r\n lstMenu: [] as any,\r\n lstMenuAll: [] as any,\r\n })\r\n const [open, setOpen] = React.useState(false);\r\n const [openMenu, setOpenMenu] = React.useState(true);\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = (value: string) => {\r\n setOpen(false);\r\n // setSelectedValue(value);\r\n };\r\n\r\n\r\n const [display, setdisplay] = useState(\"none\");\r\n\r\n const LogOut = () => {\r\n AxiosPost(\"Login/ClearSession\", {}, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n lnkToLogin();\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n\r\n const LoadMenu = () => {\r\n AxiosPost(sController + \"/LoadMP_Front\", {}, (response) => {\r\n // ResultAPI(false, response, null, () => {\r\n if (response.sStatus !== Process_System.process_SessionExpire) {\r\n\r\n setObjMenu({\r\n ...objMenu,\r\n lstMenu: new LINQ(response.lstMenuData).Where(w => w.nLavel === 0).OrderBy(o => o.nOrderBy).ToArray(),\r\n lstMenuAll: new LINQ(response.lstMenuData).OrderBy(o => o.nOrderBy).ToArray(),\r\n sFullUserName: response.sFullUserName,\r\n sCompanyName: response.sCompanyName,\r\n lstGroupUser: response.lstGroupUser,\r\n sGroupUserName: response.sGroupUserName,\r\n\r\n // })\r\n })\r\n setdisplay(\"\");\r\n } else {\r\n setdisplay(\"none\");\r\n }\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n useEffect(() => {\r\n LoadMenu();\r\n\r\n }, [])\r\n\r\n const setActiveLink = (sLink: any) => {\r\n let sActive = \"\"\r\n let sPath = window.location.pathname.replace(process.env.REACT_APP_API_URL + \"\", \"/\");\r\n //let sPath = window.location.pathname.replace(\"/PTT_Event_Report/\", \"/\");\r\n sActive = sLink === sPath ? \"active-LI\" : \"\"\r\n\r\n return sActive\r\n }\r\n\r\n\r\n const [isSideNav, setIsSideNav] = useState(true);\r\n const SideNav = () => setIsSideNav(!isSideNav);\r\n const toggleSideNav = () => {\r\n setIsSideNav(!isSideNav)\r\n if (document.body.className === \"nav-expanded\") {\r\n document.body.classList.remove(\"nav-expanded\")\r\n } else {\r\n document.body.classList.add(\"nav-expanded\")\r\n }\r\n }\r\n\r\n const toggle_Mobilemenu = () => {\r\n if (document.body.className === \"nav-expanded\") {\r\n document.body.classList.remove(\"nav-expanded\")\r\n }\r\n }\r\n const toggle_Area = () => {\r\n document.body.addEventListener('click', toggle_Mobilemenu);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n
\r\n {/*
*/}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
EVENT
\r\n
\r\n
\r\n
REPORT
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n {\r\n objMenu.lstMenu.map((items: any, index: number) => {\r\n return (\r\n
  • \r\n \r\n
    {items.sHeaderName}
    \r\n \r\n
  • \r\n )\r\n })\r\n }\r\n
\r\n
\r\n
\r\n {/*
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
*/}\r\n
\r\n
\r\n
\r\n
WELCOME
\r\n
{objMenu.sFullUserName}
\r\n
ROLE:\r\n {\r\n objMenu.lstGroupUser && objMenu.lstGroupUser.length > 1 ?\r\n {objMenu.sGroupUserName}...\r\n : objMenu.sGroupUserName\r\n }\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n {Props.children}\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
PTT PUBLIC COMPANY LIMITED
\r\n
Copyright © 2020 PTT Public Company Limited All rights reserved
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n {/* reponsive menu */}\r\n
\r\n
\r\n {/*
    */}\r\n {\r\n objMenu.lstMenu.map((items: any, index: number) => {\r\n return (\r\n
  • \r\n \r\n
    {items.sHeaderName}
    \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 Layout_Front;\r\n\r\n","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport FormErrors from \"./formErrors\";\r\nimport { Field } from \"formik\";\r\nimport Select from \"react-select\";\r\nimport makeAnimated from 'react-select/animated';\r\nimport { i18n } from \"../../i18n\";\r\nimport {\r\n components as materialUiComponents,\r\n styles as materialUiStyles,\r\n} from \"./MaterialUI/reactSelectMaterialUi\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport { Tune } from \"@material-ui/icons\";\r\nconst animatedComponents = makeAnimated();\r\n\r\nexport class SelectFormItemNotFast extends Component {\r\n value = () => {\r\n const { mode } = this.props;\r\n if (mode === \"multiple\") {\r\n return this.valueMultiple();\r\n } else {\r\n return this.valueOne();\r\n }\r\n };\r\n\r\n valueMultiple = () => {\r\n const { form, name, options } = this.props;\r\n\r\n if (form.values[name]) {\r\n return form.values[name].map((value) =>\r\n options.find((option) => option.value === value)\r\n );\r\n }\r\n\r\n return [];\r\n };\r\n\r\n valueOne = () => {\r\n const { form, name, options } = this.props;\r\n\r\n if (form.values[name]) {\r\n return options.find((option) => option.value === form.values[name]);\r\n }\r\n\r\n return \"\";\r\n };\r\n\r\n handleSelect = (data) => {\r\n const { form, name } = this.props;\r\n form.setFieldTouched(name);\r\n const { mode } = this.props;\r\n if (mode === \"multiple\") {\r\n return this.handleSelectMultiple(data);\r\n } else {\r\n return this.handleSelectOne(data);\r\n }\r\n };\r\n\r\n handleSelectMultiple = (values) => {\r\n const { form, name, onChangeMultiSelect, onBlurMultiSelect } = this.props;\r\n\r\n if (!values) {\r\n form.setFieldValue(name, []);\r\n if (onChangeMultiSelect) {\r\n onChangeMultiSelect(form, []);\r\n }\r\n if (onBlurMultiSelect) {\r\n onBlurMultiSelect(form, []);\r\n }\r\n return;\r\n } else {\r\n if (onChangeMultiSelect) {\r\n onChangeMultiSelect(form, values);\r\n }\r\n if (onBlurMultiSelect) {\r\n onBlurMultiSelect(form, values);\r\n }\r\n }\r\n\r\n form.setFieldValue(\r\n name,\r\n values.map((data) => (data ? data.value : undefined)).filter(Boolean)\r\n );\r\n };\r\n\r\n handleSelectoBlurMultiSelect = (e) => {\r\n const { onBlurMultiSelect } = this.props;\r\n\r\n if (onBlurMultiSelect) {\r\n onBlurMultiSelect(e, this.value());\r\n }\r\n\r\n };\r\n\r\n handleSelectOne = (data) => {\r\n const { form, name, onSetSelect, allValues } = this.props;\r\n if (!data) {\r\n form.setFieldValue(name, '');\r\n form.setFieldTouched(name);\r\n if (onSetSelect) {\r\n // SET VALUE ตรงนึ้\r\n onSetSelect(form, \"\");\r\n }\r\n return;\r\n }\r\n form.setFieldValue(name, data.value);\r\n form.setFieldTouched(name);\r\n if (onSetSelect) {\r\n // SET VALUE ตรงนึ้\r\n onSetSelect(form, data ? data.value : \"\");\r\n }\r\n\r\n };\r\n\r\n render() {\r\n const {\r\n name,\r\n label,\r\n form,\r\n hint,\r\n options,\r\n disable,\r\n errorMessage,\r\n required,\r\n mode,\r\n placeholder,\r\n isClearable,\r\n classes,\r\n onChangeMultiSelect,\r\n onBlurMultiSelect,\r\n menuPortalTarget,\r\n variant\r\n } = this.props;\r\n const isInvalid = !!FormErrors.displayableError(form, name, errorMessage);\r\n\r\n const controlStyles = {\r\n container: (provided) => ({\r\n ...provided,\r\n width: \"100%\",\r\n marginTop: \"16px\",\r\n marginBottom: \"8px\",\r\n\r\n }),\r\n control: (provided) => ({\r\n ...provided,\r\n borderColor: isInvalid ? \"red\" : undefined,\r\n }),\r\n dropdownIndicator: base => ({\r\n ...base,\r\n cursor: \"pointer\"\r\n }),\r\n indicatorsContainer: base => ({\r\n ...base,\r\n cursor: \"pointer\"\r\n }),\r\n };\r\n\r\n\r\n return (\r\n\r\n {this.TextFieldProps.InputLabelProps.shrink=true}}\r\n value={this.value()}\r\n onChange={this.handleSelect}\r\n blur={this.handleSelectoBlurMultiSelect}\r\n inputId={name}\r\n isDisabled={disable || false}\r\n placeholder={placeholder || \"\"}\r\n isMulti={mode === \"multiple\"}\r\n isClearable={isClearable}\r\n loadingMessage={() => i18n(\"autocomplete.loading\")}\r\n noOptionsMessage={() => i18n(\"autocomplete.noOptions\")}\r\n tabIndex=\"999\"\r\n />\r\n );\r\n }\r\n}\r\n\r\nSelectFormItemNotFast.defaultProps = {\r\n required: false,\r\n isClearable: true,\r\n};\r\n\r\nSelectFormItemNotFast.propTypes = {\r\n form: PropTypes.object.isRequired,\r\n name: PropTypes.string.isRequired,\r\n options: PropTypes.array.isRequired,\r\n label: PropTypes.string,\r\n hint: PropTypes.string,\r\n required: PropTypes.bool,\r\n errorMessage: PropTypes.string,\r\n mode: PropTypes.string,\r\n isClearable: PropTypes.bool,\r\n onChangeMultiSelect: PropTypes.func,\r\n onBlurMultiSelect: PropTypes.func\r\n};\r\n\r\nclass SelectFormItem extends Component {\r\n render() {\r\n return (\r\n \r\n {({ form }) => (\r\n\r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(materialUiStyles)(SelectFormItem);\r\n","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport FormErrors from \"./formErrors\";\r\nimport { FastField } from \"formik\";\r\nimport { TextField } from \"@material-ui/core\";\r\nimport DateFnsUtils from \"@material-ui/pickers/adapter/date-fns\";\r\nimport { TimePicker, LocalizationProvider } from \"@material-ui/pickers\";\r\nimport { getLanguage } from \"../../i18n\";\r\nimport { i18n } from \"../../i18n\";\r\n\r\nexport class TimePickerFormItemNotFast extends Component {\r\n state = {\r\n MinTime: this.props.minTime,\r\n disable: this.props.disable,\r\n };\r\n render() {\r\n \r\n const {\r\n label,\r\n name,\r\n form,\r\n hint,\r\n autoComplete,\r\n inputProps,\r\n errorMessage,\r\n required,\r\n minTime,\r\n maxTime,\r\n handleChange,\r\n disable,\r\n date,\r\n } = this.props;\r\n\r\n return (\r\n {\r\n form.setFieldValue(name, value);\r\n form.setFieldTouched(name);\r\n if (handleChange) handleChange(value)\r\n }}\r\n {...inputProps}\r\n renderInput={(props) => (\r\n \r\n )}\r\n />\r\n );\r\n }\r\n}\r\n\r\nTimePickerFormItemNotFast.defaultProps = {\r\n required: false,\r\n};\r\n\r\nTimePickerFormItemNotFast.propTypes = {\r\n form: PropTypes.object.isRequired,\r\n name: PropTypes.string.isRequired,\r\n required: PropTypes.bool,\r\n label: PropTypes.string,\r\n hint: PropTypes.string,\r\n autoFocus: PropTypes.bool,\r\n size: PropTypes.string,\r\n prefix: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n inputProps: PropTypes.object,\r\n handleChange: PropTypes.func,\r\n};\r\n\r\nclass TimePickerFormItem extends Component {\r\n render() {\r\n return (\r\n \r\n (\r\n \r\n )}\r\n >\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default TimePickerFormItem;\r\n","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport FormErrors from \"./formErrors\";\r\nimport { FastField } from \"formik\";\r\nimport {\r\n Checkbox,\r\n FormControl,\r\n FormHelperText,\r\n FormLabel,\r\n FormGroup,\r\n FormControlLabel,\r\n} from \"@material-ui/core\";\r\n\r\nexport class CheckboxFormItemNotFast extends Component {\r\n render() {\r\n const {\r\n legend,\r\n label,\r\n name,\r\n form,\r\n hint,\r\n color,\r\n inputProps,\r\n errorMessage,\r\n required,\r\n marginTop,\r\n marginButton,\r\n onChangedCallback,\r\n disabled,\r\n } = this.props;\r\n\r\n const formHelperText =\r\n FormErrors.displayableError(form, name, errorMessage) || hint;\r\n\r\n return (\r\n \r\n {legend && {legend}}\r\n \r\n {\r\n form.setFieldValue(name, !!e.target.checked);\r\n form.setFieldTouched(name);\r\n if (onChangedCallback != undefined) {\r\n onChangedCallback(!!e.target.checked);\r\n }\r\n }}\r\n color={color || \"secondary\"}\r\n {...inputProps}\r\n />\r\n }\r\n label={label}\r\n />\r\n \r\n {formHelperText && (\r\n \r\n {formHelperText}\r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nCheckboxFormItemNotFast.defaultProps = {};\r\n\r\nCheckboxFormItemNotFast.propTypes = {\r\n form: PropTypes.object.isRequired,\r\n name: PropTypes.string.isRequired,\r\n required: PropTypes.bool,\r\n label: PropTypes.string,\r\n legend: PropTypes.string,\r\n hint: PropTypes.string,\r\n color: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n inputProps: PropTypes.object,\r\n onChangedCallback: PropTypes.func,\r\n};\r\n\r\nclass CheckboxFormItem extends Component {\r\n render() {\r\n return (\r\n (\r\n \r\n )}\r\n />\r\n );\r\n }\r\n}\r\n\r\nexport default CheckboxFormItem;\r\n","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport FormErrors from \"./formErrors\";\r\nimport { FastField } from \"formik\";\r\nimport { TextField } from \"@material-ui/core\";\r\nimport DateFnsUtils from \"@material-ui/pickers/adapter/date-fns\";\r\nimport {\r\n MobileDatePicker,\r\n MobileDateTimePicker,\r\n LocalizationProvider,\r\n} from \"@material-ui/pickers\";\r\nimport { getLanguage } from \"../../i18n\";\r\n\r\nexport class DatePickerFormItemNotFast extends Component {\r\n state = {\r\n disable: this.props.disable,\r\n };\r\n render() {\r\n const {\r\n label,\r\n name,\r\n form,\r\n hint,\r\n placeholder,\r\n autoFocus,\r\n autoComplete,\r\n inputProps,\r\n errorMessage,\r\n required,\r\n showTime,\r\n endAdornment,\r\n onChangedCallback,\r\n disable,\r\n onCloseCallback,\r\n maxDate\r\n } = this.props;\r\n\r\n const DateTimePickerComponent = showTime\r\n ? MobileDateTimePicker\r\n : MobileDatePicker;\r\n\r\n const format = showTime ? \"dd/MM/yyyy HH:mm\" : \"dd/MM/yyyy\";\r\n // console.log(\"inputProps\", inputProps);\r\n //console.log(\"d\",getLanguage());\r\n return (\r\n {\r\n form.setFieldValue(name, value);\r\n form.setFieldTouched(name);\r\n if (onChangedCallback != undefined) {\r\n onChangedCallback(value);\r\n }\r\n }}\r\n value={form.values[name] || null}\r\n placeholder={placeholder || undefined}\r\n autoFocus={autoFocus || undefined}\r\n autoComplete={autoComplete || undefined}\r\n maxDate={maxDate||undefined}\r\n onClose={(e)=> {\r\n if(onCloseCallback!=undefined){\r\n onCloseCallback(e);\r\n }\r\n }}\r\n // InputLabelProps={{\r\n // shrink: true,\r\n // }}\r\n // autoOk\r\n {...inputProps}\r\n renderInput={(props) => (\r\n \r\n )}\r\n />\r\n );\r\n }\r\n}\r\n\r\nDatePickerFormItemNotFast.defaultProps = {\r\n required: false,\r\n};\r\n\r\nDatePickerFormItemNotFast.propTypes = {\r\n form: PropTypes.object.isRequired,\r\n name: PropTypes.string.isRequired,\r\n required: PropTypes.bool,\r\n label: PropTypes.string,\r\n hint: PropTypes.string,\r\n autoFocus: PropTypes.bool,\r\n size: PropTypes.string,\r\n prefix: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n inputProps: PropTypes.object,\r\n endAdornment: PropTypes.object,\r\n onChangedCallback: PropTypes.func,\r\n};\r\n\r\nclass DatePickerFormItem extends Component {\r\n render() {\r\n return (\r\n \r\n (\r\n \r\n )}\r\n >\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default DatePickerFormItem;\r\n","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport FormErrors from \"./formErrors\";\r\nimport { FastField } from \"formik\";\r\nimport FormLabel from \"@material-ui/core/FormLabel\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormGroup from \"@material-ui/core/FormGroup\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport SmsOutlinedIcon from '@material-ui/icons/SmsOutlined';\r\nimport { ParseHtml } from '../SysComponent/SystemComponent';\r\nconst BlackTooltip = withStyles((theme) => ({\r\n tooltip: {\r\n // backgroundColor: theme.palette.common.black,\r\n // color: theme.palette.common.black,\r\n boxShadow: theme.shadows[1],\r\n fontSize: 13,\r\n },\r\n}))(Tooltip);\r\n\r\nexport class CheckboxListFormItemNotFast extends Component {\r\n state = { checked: 0 };\r\n\r\n UNSAFE_componentWillMount() {\r\n this.handleCheck_Check_All();\r\n }\r\n\r\n handleCheck_Check_All = async () => {\r\n const { form, name, AllowCheckAll, dataProvider } = this.props;\r\n const datas = form.values[name] || [];\r\n this.setState({ checked: datas.length ? datas.length : 0 });\r\n\r\n\r\n };\r\n\r\n handleSelect = (values) => {\r\n const { form, name, AllowCheckAll, dataProvider } = this.props;\r\n const datas = form.values[name] || [];\r\n const index = datas.indexOf(values.target.name);\r\n if (AllowCheckAll) {\r\n }\r\n if (index === -1) {\r\n datas.push(values.target.name);\r\n } else {\r\n datas.splice(index, 1);\r\n }\r\n if (!datas || !datas.length) {\r\n form.setFieldValue(name, []);\r\n form.setFieldTouched(name);\r\n // return;\r\n } else {\r\n form.setFieldValue(name, datas.map((data) => (data ? data : [])).filter(Boolean));\r\n this.setState({ checked: datas.length ? datas.length : 0 }); // checked all\r\n form.setFieldTouched(name);\r\n }\r\n };\r\n\r\n CheckAll = () => {\r\n const { form, name, dataProvider } = this.props;\r\n form.setFieldValue(\r\n name,\r\n dataProvider.map((data) => (data ? data.id : undefined)).filter(Boolean)\r\n );\r\n\r\n form.setFieldTouched(name);\r\n };\r\n\r\n handleSelectAll = (event) => {\r\n const { form, name, dataProvider } = this.props;\r\n if (event.target.checked) {\r\n form.setFieldValue(name, dataProvider.map((data) => (data ? data.id : undefined)).filter(Boolean));\r\n form.setFieldTouched(name);\r\n this.setState({ checked: dataProvider.length ? dataProvider.length : 0 }); // checked all\r\n } else {\r\n form.setFieldValue(name, undefined);\r\n form.setFieldTouched(name);\r\n this.setState({ checked: 0 });\r\n }\r\n };\r\n\r\n render() {\r\n // console.log(\"CheckboxListFormItemNotFast\", this.props);\r\n const {\r\n label,\r\n name,\r\n form,\r\n hint,\r\n inputProps,\r\n errorMessage,\r\n required,\r\n dataProvider,\r\n AllowCheckAll,\r\n labelAll,\r\n defaultAll,\r\n showComment = false,\r\n disabled\r\n } = this.props;\r\n\r\n const { checked } = this.state;\r\n\r\n const formHelperText =\r\n FormErrors.displayableError(form, name, errorMessage) || hint;\r\n const values = form.values[name] || [];\r\n\r\n return (\r\n \r\n {label}\r\n\r\n \r\n \r\n {AllowCheckAll && (\r\n \r\n this.handleSelectAll(e)}\r\n // color=\"primary\"\r\n {...inputProps}\r\n />\r\n }\r\n label={labelAll ? labelAll : \"All \" + label}\r\n />\r\n \r\n )}\r\n\r\n {dataProvider.map((row, index) => (\r\n\r\n \r\n \r\n }\r\n label={\r\n \r\n {row.label}\r\n {showComment && {ParseHtml(row[\"comment\"])}\r\n }>\r\n \r\n \r\n }\r\n \r\n }\r\n />\r\n \r\n ))}\r\n \r\n \r\n\r\n {\r\n formHelperText && (\r\n \r\n {formHelperText}\r\n \r\n )\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nCheckboxListFormItemNotFast.defaultProps = {};\r\n\r\nCheckboxListFormItemNotFast.propTypes = {\r\n form: PropTypes.object.isRequired,\r\n name: PropTypes.string.isRequired,\r\n required: PropTypes.bool,\r\n label: PropTypes.string,\r\n hint: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n inputProps: PropTypes.object,\r\n dataProvider: PropTypes.array,\r\n AllowCheckAll: PropTypes.bool,\r\n labelAll: PropTypes.string,\r\n defaultAll: PropTypes.bool,\r\n};\r\n\r\nclass CheckboxListFormItem extends Component {\r\n state = {\r\n test: false,\r\n };\r\n\r\n UNSAFE_componentWillReceiveProps(next) {\r\n if (this.props.dataProvider !== next.dataProvider) {\r\n this.setState({ test: this.state.test ? false : true });\r\n }\r\n }\r\n render() {\r\n return (\r\n (\r\n \r\n )}\r\n />\r\n );\r\n }\r\n}\r\n\r\nexport default CheckboxListFormItem;","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport FormErrors from \"./formErrors\";\r\nimport { FastField } from \"formik\";\r\nimport { TextField } from \"@material-ui/core\";\r\n\r\n\r\nexport class TextAreaFormItemNotFast extends Component {\r\n \r\n render() {\r\n const requires =
require
;\r\n const {\r\n label,\r\n name,\r\n form,\r\n hint,\r\n type,\r\n placeholder,\r\n autoFocus,\r\n autoComplete,\r\n inputProps,\r\n errorMessage,\r\n required,\r\n rows,\r\n disabled,\r\n \r\n } = this.props;\r\n\r\n return (\r\n {\r\n form.setFieldValue(name, event.target.value);\r\n }}\r\n onFocus={(event) => {\r\n form.setFieldTouched(name);\r\n }}\r\n value={form.values[name] || \"\"}\r\n placeholder={placeholder || undefined}\r\n autoFocus={autoFocus || undefined}\r\n autoComplete={autoComplete || undefined}\r\n InputLabelProps={{\r\n //shrink: true,\r\n \r\n }}\r\n multiline\r\n rows={rows}\r\n error={!!FormErrors.displayableError(form, name, errorMessage)}\r\n helperText={\r\n FormErrors.displayableError(form, name, errorMessage) || hint\r\n }\r\n InputProps={inputProps}\r\n disabled={disabled}\r\n {...inputProps}\r\n />\r\n );\r\n }\r\n}\r\n\r\nTextAreaFormItemNotFast.defaultProps = {\r\n type: \"text\",\r\n required: false,\r\n};\r\n\r\nTextAreaFormItemNotFast.propTypes = {\r\n form: PropTypes.object.isRequired,\r\n name: PropTypes.string.isRequired,\r\n required: PropTypes.bool,\r\n type: PropTypes.string,\r\n label: PropTypes.string,\r\n hint: PropTypes.string,\r\n autoFocus: PropTypes.bool,\r\n prefix: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n inputProps: PropTypes.object,\r\n disabled: PropTypes.bool,\r\n};\r\n\r\nclass TextAreaFormItem extends Component {\r\n render() {\r\n \r\n return (\r\n }\r\n />\r\n );\r\n }\r\n}\r\n\r\nexport default TextAreaFormItem;\r\n","import React, { useEffect, useCallback, useMemo } from 'react'\r\nimport { makeStyles, createStyles, Theme, withStyles } from '@material-ui/core/styles'\r\nimport Button from '@material-ui/core/Button';\r\nimport axios from 'axios'\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport VisibilityIcon from '@material-ui/icons/Visibility';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Table from '@material-ui/core/Table';\r\nimport AttachFileIcon from '@material-ui/icons/AttachFile';\r\nimport { List as LINQ } from 'linqts';\r\nimport Swal from \"sweetalert2\";\r\nimport { Process_System, AxiosPost, FnBlock_UI, DialogConfirmDelete, ResultDeleteAPI, SwAlert, AlertTitle } from '../SysComponent/SystemComponent'\r\nexport const Extension = {\r\n Image: ['jpg', 'jpeg', 'png', 'gif'],\r\n Video: ['mov', 'wmv', 'avi', 'mp4'],\r\n PDF: ['pdf'],\r\n Document: ['doc', 'docx', 'xls', 'xlsx', 'txt'],\r\n Word: [\"doc\", \"docx\"],\r\n Excel: [\"xls\", \"xlsx\"],\r\n Powpoint: [\"pptx\", \"pdf\", \"ppt\"],\r\n txt: [\"txt\"],\r\n Email: [\"msg\"],\r\n Other: ['rar', 'zip'],\r\n AllType: null\r\n};\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n margin: theme.spacing(1),\r\n textTransform: \"none\",\r\n textAlign: \"center\",\r\n \"box-shadow\": \"0px 2px 1px -1px rgba(0,0,0,0.2), 0px 1px 1px 0px rgba(0,0,0,0.14), 0px 1px 3px 0px rgba(0,0,0,0.12)\",\r\n },\r\n input: {\r\n display: 'none',\r\n },\r\n demo: {\r\n width: \"300px\",\r\n wordSpacing: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n\r\n }, textMsg: {\r\n \"font-size\": \"11px\",\r\n \"text-align\": \"start\",\r\n \"padding\": \"5px\",\r\n \"color\": \"#f60a0a\",\r\n },\r\n }),\r\n);\r\n\r\nconst StyledTableCell = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n padding: 1,\r\n paddingBottom: 0,\r\n paddingTop: 0,\r\n height: \"38px\",\r\n },\r\n head: {\r\n backgroundColor: \"rgba(0, 120, 255, 0.1)\",\r\n color: theme.palette.common.black,\r\n\r\n },\r\n body: {\r\n fontSize: 14,\r\n },\r\n }),\r\n)(TableCell);\r\n\r\nconst CheckFilesize = (_size, Max) => {\r\n if (_size == 0) return '0 Byte';\r\n\r\n let k = 1024,\r\n sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],\r\n i = Math.floor(Math.log(_size) / Math.log(k));\r\n let result = \"\";\r\n let nSize = (_size / Math.pow(k, i));\r\n result = nSize + ' ' + sizes[i];\r\n if (sizes[i] == \"MB\" && nSize > Max) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n}\r\n\r\nconst CheckFileType = (sName, sType) => {\r\n let LF = sType.replace(/,/g, '').split(\".\");\r\n let arrFileYupe = sName.toUpperCase().split(\".\");\r\n let getLNAme = LF.filter((w) => w.toUpperCase() == arrFileYupe[arrFileYupe.length - 1]);\r\n if (getLNAme != null && getLNAme.length > 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport const UploadFile = (props) => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const { size, multiple, arrData, folder, defaultFileData, isClearFile, ResultClearFile, name, isView, ...OtherProps } = props;\r\n const classes = useStyles();\r\n const [FileData, setFileData] = React.useState([] as any[]);\r\n const [FileDataErr, setFileDataErr] = React.useState([] as any[]);\r\n const [selectedFile, setselectedFile] = React.useState([] as File[]);\r\n const [selectedFileCompleted, setselectedFileCompleted] = React.useState([] as any[]);\r\n let sFileType = \".jpeg,.png,.gif,.jpg,.txt,.doc,.docx,.xls,.xlsx,.pdf,.rar,.zip,.mov,.wmv,.avi,.mp4\";\r\n const REACT_APP_API_URL_File = process.env.REACT_APP_API_URL;\r\n\r\n //#region Change file\r\n const handleInputChange = (event) => {\r\n let files = event.target.files;\r\n for (let i = 0; i < files.length; i++) {\r\n selectedFile.push(files[i])\r\n }\r\n setselectedFile(selectedFile);\r\n let min = 1;\r\n selectedFile.forEach(f => {\r\n if (!CheckFilesize(f.size, size || 50)) {\r\n var rand = min + (Math.random() * min);\r\n let obj = {\r\n id: rand,\r\n name: f.name,\r\n size: f.size,\r\n msg: \"Maximum file size \" + size + \" MB.\"\r\n }\r\n FileDataErr.push(obj);\r\n } else if (!CheckFileType(f.name, sFileType)) {\r\n var rand = min + (Math.random() * min);\r\n let obj = {\r\n id: rand,\r\n name: f.name,\r\n size: f.size,\r\n msg: \"Wrong type\"\r\n }\r\n FileDataErr.push(obj);\r\n } else {\r\n\r\n selectedFileCompleted.push(f);\r\n }\r\n min++;\r\n })\r\n if (selectedFileCompleted.length > 0) {\r\n setselectedFileCompleted([...selectedFileCompleted])\r\n onUpload();\r\n }\r\n setFileDataErr([...FileDataErr])\r\n setselectedFile([]);\r\n event.target.files = null;\r\n event.target.value = null;\r\n }\r\n const deleteFileErr = (id) => {\r\n setFileDataErr(new LINQ(FileDataErr).Where(w => w.id !== id).ToArray());\r\n };\r\n const deleteFileCompleted = (id) => {\r\n DialogConfirmDelete(() => {\r\n let q = new LINQ(FileData).Where(w => w.nID === id).FirstOrDefault();\r\n if (q != null) {\r\n if (q.IsNewFile == true) {\r\n let obj = JSON.stringify(q);\r\n AxiosPost(\"UploadFile/DeleteFile\", q, (response) => {\r\n ResultDeleteAPI(false, response, null, () => {\r\n\r\n let f = new LINQ(FileData).Where(w => w.nID !== id).ToArray();\r\n setFileData([...f]);\r\n\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n } else {\r\n q.IsDelete = true;\r\n setFileData([...FileData]);\r\n Swal.close();\r\n }\r\n }\r\n\r\n });\r\n };\r\n //#endregion\r\n\r\n useEffect(() => {\r\n setFileData(defaultFileData);\r\n }, []);\r\n\r\n //#region Updata FileData\r\n useEffect(() => {\r\n arrData(FileData);\r\n }, [FileData]);\r\n\r\n useEffect(() => {\r\n if (isClearFile) {\r\n setFileData([]);\r\n setFileDataErr([]);\r\n }\r\n if (ResultClearFile != undefined) ResultClearFile(false);\r\n }, [isClearFile]);\r\n //#endregion\r\n\r\n const onUpload = useCallback(() => {\r\n if (selectedFileCompleted.length) {\r\n let idex = 0;\r\n\r\n selectedFileCompleted.forEach(async file => {\r\n idex++;\r\n BlockUI();\r\n const formPayload = new FormData()\r\n formPayload.append('file', file)\r\n formPayload.append(\"sFolder\", folder);\r\n try {\r\n await axios({\r\n baseURL: REACT_APP_API_URL_File,\r\n url: \"api/UploadFile/Upload\",\r\n method: 'post',\r\n data: formPayload,\r\n onUploadProgress: progress => {\r\n const { loaded, total } = progress\r\n const percentageProgress = Math.floor((loaded / total) * 100)\r\n },\r\n }).then(function (response) {\r\n\r\n let d = response.data;\r\n if (d.sStatusUpload === \"Error\") {\r\n SwAlert.Error(AlertTitle.Error, d.sMsg, () => { });\r\n } else {\r\n if (d.sStatusUpload == Process_System.process_Success) {\r\n\r\n if (d.FileData != null) {\r\n let fi = d.FileData;\r\n let MaxID = FileData.length > 0 ? new LINQ(FileData).Max(m => m.nID) + 1 : 1;\r\n let obj = {\r\n nID: MaxID,\r\n sPath: fi.sPath,\r\n sSystemFileName: fi.sSystemFileName,\r\n sFileName: fi.sFileName,\r\n sSaveToPath: fi.sSaveToPath,\r\n sUrl: fi.sUrl,\r\n IsDelete: fi.IsDelete,\r\n IsNewFile: fi.IsNewFile,\r\n sFileType: fi.sFileType\r\n };\r\n FileData.push(obj);\r\n setFileData(FileData);\r\n } else {\r\n if (d.sMsg != null && d.sMsg != \"\") {\r\n SwAlert.Error(AlertTitle.Error, d.sMsg, () => { });\r\n }\r\n }\r\n } else if (d.sStatusUpload == Process_System.process_Error) {\r\n var rand = 10 + (Math.random() * 1);\r\n let obj = {\r\n id: rand,\r\n name: file.name,\r\n size: file.size,\r\n msg: \"file error\"\r\n }\r\n FileDataErr.push(obj);\r\n setFileDataErr([...FileDataErr])\r\n }\r\n if (selectedFileCompleted.length === idex) setselectedFileCompleted([]);\r\n }\r\n\r\n UnBlockUI();\r\n }).catch(function (error) {\r\n setselectedFileCompleted([]);\r\n UnBlockUI();\r\n SwAlert.Error(AlertTitle.Error, error, () => { });\r\n }).then(function () {\r\n setselectedFileCompleted([]);\r\n UnBlockUI();\r\n });\r\n } catch (error) {\r\n }\r\n })\r\n }\r\n }, [selectedFileCompleted, FileData]);\r\n\r\n const TableErr = useCallback(() => {\r\n return (\r\n
\r\n \r\n \r\n {FileDataErr.map((row, index) => (\r\n \r\n \r\n \r\n \r\n \r\n
{row.name}
\r\n
{row.msg}
\r\n
\r\n \r\n (Fail)\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n )\r\n }, [FileDataErr]);\r\n\r\n const TableCompleted = useCallback(() => {\r\n return (\r\n
\r\n
\r\n \r\n \r\n {FileData.filter(f => !f.IsDelete).map((row, index) => (\r\n \r\n \r\n \r\n \r\n \r\n
{row.sFileName}
\r\n
\r\n \r\n \r\n { deleteFileErr(row.nID) }} >\r\n \r\n \r\n \r\n \r\n \r\n {(isView || false) === false && { deleteFileCompleted(row.nID) }} >\r\n \r\n }\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }, [FileData]);\r\n\r\n return (\r\n
\r\n {(isView || false) === false &&
\r\n \r\n \r\n
\r\n }\r\n {FileData.filter(f => !f.IsDelete).length > 0 && }\r\n {FileDataErr.length > 0 && }\r\n
\r\n )\r\n}","import React from \"react\"\r\nimport { FormLabel, Checkbox, } from \"@material-ui/core\"\r\nimport { withStyles, Theme, createStyles, makeStyles } from '@material-ui/core/styles';\r\nimport { Button, IconButton } from '@material-ui/core';\r\nimport '../../Styles/Fonts/Kanit/css/fonts.css';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport AddCircleIcon from '@material-ui/icons/AddCircle';\r\nimport { AddBox } from \"@material-ui/icons\";\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport RefreshIcon from '@material-ui/icons/Refresh';\r\nimport SubjectIcon from '@material-ui/icons/Subject';\r\nimport MessageIcon from '@material-ui/icons/Message';\r\nimport Badge from '@material-ui/core/Badge';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport ClearIcon from '@material-ui/icons/Clear';\r\nimport SpellcheckIcon from '@material-ui/icons/Spellcheck';\r\nimport ReplayIcon from '@material-ui/icons/Replay';\r\nimport DeleteOutlineOutlinedIcon from '@material-ui/icons/DeleteOutlineOutlined';\r\nimport SendIcon from '@material-ui/icons/Send';\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport VisibilityIcon from '@material-ui/icons/Visibility';\r\nimport SystemUpdateAltIcon from '@material-ui/icons/SystemUpdateAlt';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n button: {\r\n textTransform: \"none\",\r\n margin: theme.spacing(1),\r\n \"height\": \"42px\",\r\n \"margin-top\": \"6px\",\r\n },\r\n buttonSearch: {\r\n textTransform: \"none\",\r\n backgroundColor: \"#000\",\r\n margin: theme.spacing(0),\r\n \"height\": \"42px\",\r\n \"margin-top\": \"6px\",\r\n color: \"#fff\",\r\n '&:hover': {\r\n backgroundColor: '#3f3d3d',\r\n borderColor: '#0062cc',\r\n boxShadow: 'none',\r\n },\r\n '&:active': {\r\n boxShadow: 'none',\r\n backgroundColor: '#3f3d3d',\r\n borderColor: '#005cbf',\r\n },\r\n },\r\n buttonEdite: {\r\n textTransform: \"none\",\r\n backgroundColor: \"#e5a109\",\r\n margin: theme.spacing(1),\r\n color: \"#fff\",\r\n '&:hover': {\r\n backgroundColor: '#cc9541',\r\n borderColor: '#0062cc',\r\n boxShadow: 'none',\r\n },\r\n '&:active': {\r\n boxShadow: 'none',\r\n backgroundColor: '#cc9541',\r\n borderColor: '#005cbf',\r\n },\r\n },\r\n buttonView: {\r\n textTransform: \"none\",\r\n backgroundColor: \"#6f88a9\",\r\n margin: theme.spacing(1),\r\n color: \"#fff\",\r\n '&:hover': {\r\n backgroundColor: '#305b93',\r\n borderColor: '#0062cc',\r\n boxShadow: 'none',\r\n },\r\n '&:active': {\r\n boxShadow: 'none',\r\n backgroundColor: '#305b93',\r\n borderColor: '#005cbf',\r\n },\r\n },\r\n buttonAdd: {\r\n textTransform: \"none\",\r\n backgroundColor: \"#1081e3\",\r\n margin: theme.spacing(1),\r\n color: \"#fff\",\r\n '&:hover': {\r\n backgroundColor: '#3f93db',\r\n borderColor: '#0062cc',\r\n boxShadow: 'none',\r\n },\r\n '&:active': {\r\n boxShadow: 'none',\r\n backgroundColor: '#3f93db',\r\n borderColor: '#3f93db',\r\n },\r\n },\r\n buttonDelete: {\r\n textTransform: \"none\",\r\n backgroundColor: \"#1081e3\",\r\n margin: theme.spacing(1),\r\n color: \"#fff\",\r\n '&:hover': {\r\n backgroundColor: '#3f93db',\r\n borderColor: '#0062cc',\r\n boxShadow: 'none',\r\n },\r\n '&:active': {\r\n boxShadow: 'none',\r\n backgroundColor: '#3f93db',\r\n borderColor: '#3f93db',\r\n },\r\n },\r\n ButtonClear: {\r\n textTransform: \"none\",\r\n backgroundColor: \"#959392\",\r\n margin: theme.spacing(1),\r\n color: \"#fff\",\r\n \"height\": \"42px\",\r\n \"margin-top\": \"6px\",\r\n '&:hover': {\r\n backgroundColor: '##959392',\r\n borderColor: '#0062cc',\r\n boxShadow: 'none',\r\n },\r\n '&:active': {\r\n boxShadow: 'none',\r\n backgroundColor: '##959392',\r\n borderColor: '##959392',\r\n },\r\n },\r\n buttonF:\r\n {\r\n \"margin-right\": \"0px!important\",\r\n '&:MuiButton-startIcon': {\r\n \"margin-right\": \"0px!important\"\r\n }\r\n },\r\n buttonExport: {\r\n textTransform: \"none\",\r\n \"height\": \"42px\",\r\n \"margin-top\": \"6px\",\r\n // margin: theme.spacing(0),\r\n \r\n // backgroundColor: \"#2a8000\",\r\n // margin: theme.spacing(0),\r\n // \"height\": \"42px\",\r\n // \"margin-top\": \"6px\",\r\n // color: \"#fff\",\r\n // '&:hover': {\r\n // backgroundColor: '#3f3d3d',\r\n // borderColor: '#0062cc',\r\n // boxShadow: 'none',\r\n // },\r\n // '&:active': {\r\n // boxShadow: 'none',\r\n // backgroundColor: '#3f3d3d',\r\n // borderColor: '#005cbf',\r\n // },\r\n }\r\n }),\r\n);\r\n\r\nexport const MuiButtonSave = (props) => {\r\n const { type } = props;\r\n const classes = useStyles();\r\n return (\r\n }\r\n {...props}\r\n >\r\n Save {props.children}\r\n \r\n )\r\n}\r\n\r\nexport const MuiButtonConfirm = (props) => {\r\n const { type } = props;\r\n const classes = useStyles();\r\n return (\r\n }\r\n {...props}\r\n > {props.children}\r\n \r\n )\r\n}\r\n\r\n\r\n\r\nexport const MuiButtonCancel = (props) => {\r\n const classes = useStyles();\r\n return (\r\n }\r\n {...props}>\r\n Cancel {props.children}\r\n \r\n )\r\n}\r\nexport const MuiButtonAdd = (props) => {\r\n const { type, onClick } = props;\r\n const classes = useStyles();\r\n return (\r\n }>\r\n Add {props.children}\r\n \r\n )\r\n}\r\n\r\n// 15-10-63\r\nexport const MuiFormLabel = (props) => {\r\n const classes = useStyles();\r\n return ({props.children})\r\n}\r\nconst StyledButton = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n fontFamily: \"Prompt\",\r\n borderRadius: 0,\r\n margin: theme.spacing(1),\r\n textTransform: \"none\"\r\n }\r\n }),\r\n)(Button);\r\nconst useStylesIconButton = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n '& > *': {\r\n margin: theme.spacing(1),\r\n }\r\n },\r\n extendedIcon: {\r\n marginRight: theme.spacing(1),\r\n }\r\n }),\r\n);\r\nexport const MuiButtonAddIcon = (props) => {\r\n const classes = useStylesIconButton();\r\n const { text } = props;\r\n return (\r\n \r\n \r\n Add {props.children}\r\n \r\n )\r\n}\r\nexport const MuiButtonClear = (props) => {\r\n const classes = useStyles();\r\n return (\r\n }\r\n {...props}>\r\n Clear {props.children}\r\n \r\n )\r\n}\r\n\r\n\r\nexport const MuiButtonSearch = (props) => {\r\n const { type, onClick, ...OtherProps } = props;\r\n const classes = useStyles();\r\n return (\r\n }>\r\n Search {props.children}\r\n \r\n )\r\n}\r\n\r\n\r\nexport const MuiButtonEdite = (props) => {\r\n const { type, size, ...OtherProps } = props;\r\n const classes = useStyles();\r\n return (\r\n }\r\n {...OtherProps}>\r\n Edit {props.children}\r\n \r\n )\r\n}\r\n\r\nexport const MuiButtonView = (props) => {\r\n const { type, size, ...OtherProps } = props;\r\n const classes = useStyles();\r\n return (\r\n }\r\n {...OtherProps}>\r\n View {props.children}\r\n \r\n )\r\n}\r\n\r\n\r\nexport const MuiButtonDelete = (props) => {\r\n const { type, onClick, ...OtherProps } = props;\r\n const classes = useStyles();\r\n return (\r\n }\r\n {...OtherProps}>\r\n Delete {props.children}\r\n \r\n )\r\n}\r\n\r\nexport const MuiIconButtonDelete = (props) => {\r\n const { type } = props;\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n}\r\n\r\nexport const MuiIconButtonEdite = (props) => {\r\n const { type } = props;\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n}\r\n\r\n\r\nexport const EventColorCompronent = (props) => {\r\n const { type, EventColorID, ...OtherProps } = props;\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n\r\n )\r\n}\r\nexport const SecurityLevelColorCompronent = (props) => {\r\n const { type, color, levelName, ...OtherProps } = props;\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n\r\n )\r\n}\r\n\r\nexport const MuiIconButtonItem = (props) => {\r\n const { type, rowCount, ...OtherProps } = props;\r\n const classes = useStyles();\r\n const StyledBadge = withStyles((theme: Theme) =>\r\n createStyles({\r\n badge: {\r\n right: -3,\r\n top: 13,\r\n border: `2px solid ${theme.palette.background.paper}`,\r\n padding: '0 4px',\r\n },\r\n }),\r\n )(Badge);\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n}\r\n\r\nexport const MuiIconButtonMessage = (props) => {\r\n const { type, EventColorID } = props;\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n}\r\n\r\n\r\nexport const MuiIconCheckBoxDelete = (props) => {\r\n const { ...OtherProps } = props;\r\n const classes = useStyles();\r\n return (\r\n \r\n }\r\n checkedIcon={}\r\n {...OtherProps}\r\n />\r\n \r\n\r\n )\r\n}\r\n\r\n\r\nexport const MuiButtonSubmit = (props) => {\r\n const { type, onClick, ...OtherProps } = props;\r\n const classes = useStyles();\r\n return (\r\n }\r\n {...OtherProps}> {props.children}\r\n \r\n )\r\n}\r\n\r\n\r\nexport const MuiButtonCancelFront = (props) => {\r\n const { type, onClick, ...OtherProps } = props;\r\n const classes = useStyles();\r\n return (\r\n }\r\n {...OtherProps}> {props.children}\r\n \r\n )\r\n}\r\n\r\n\r\nexport const MuiButtonApproveFront = (props) => {\r\n const { type, onClick, OtherProps } = props;\r\n const classes = useStyles();\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport const MuiButtonEditeFront = (props) => {\r\n const { type, onClick, OtherProps } = props;\r\n const classes = useStyles();\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport const MuiButtonViewFront = (props) => {\r\n const { type, onClick, OtherProps } = props;\r\n const classes = useStyles();\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport const MuiButtonRejectFront = (props) => {\r\n const { type, onClick, OtherProps } = props;\r\n const classes = useStyles();\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport const MuiButtonSaveFront = (props) => {\r\n const { type, onClick, OtherProps } = props;\r\n const classes = useStyles();\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport const MuiButtonResend = (props) => {\r\n const { type, onClick, disable, ...OtherProps } = props;\r\n const classes = useStyles();\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport const MuiButtonExport = (props) => {\r\n const { type, onClick, ...OtherProps } = props;\r\n const classes = useStyles();\r\n return (\r\n }>\r\n Export Excel {props.children}\r\n \r\n )\r\n}\r\nexport const MuiButtonExportPDF = (props) => {\r\n const { type, onClick, ...OtherProps } = props;\r\n const classes = useStyles();\r\n return (\r\n }>\r\n Export PDF {props.children}\r\n \r\n )\r\n}","import React, { Fragment } from 'react'\r\nimport { FnBlock_UI, ParseHtml } from '../SysComponent/SystemComponent';\r\nimport { DialogContent, DialogActions, DialogContentText } from '@material-ui/core';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport Button from '@material-ui/core/Button';\r\nimport { useStyles } from '../form/Table/CustomTable';\r\nimport ReportProblemOutlinedIcon from '@material-ui/icons/ReportProblemOutlined';\r\nexport interface SubEventTypeProps {\r\n open: boolean;\r\n onClose: (value: string) => void;\r\n title: string;\r\n data: string;\r\n isWarning?: boolean;\r\n}\r\n\r\nexport const DialogRemark = (props: SubEventTypeProps) => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const { onClose, open, data, title, isWarning } = props;\r\n\r\n const handleClose = () => {\r\n onClose(\"\");\r\n };\r\n return (\r\n \r\n {isWarning === true ?\r\n {\" \"}{title}\r\n :\r\n {title}\r\n }\r\n \r\n {isWarning === true ?\r\n \r\n {ParseHtml((data + \"\").replace(/\\n/g, '
'))}\r\n
\r\n :\r\n \r\n {ParseHtml((data + \"\").replace(/\\n/g, '
'))}\r\n
\r\n }\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n}","import React, { Fragment, useState, useEffect, useCallback } from 'react'\r\nimport { DialogContent, DialogActions, DialogContentText } from '@material-ui/core';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Grid, Card, FormControl, InputLabel, Select } from '@material-ui/core';\r\nimport {\r\n FnBlock_UI, AxiosPost, ResultAPI, DialogConfirmDelete, scrollToElementValidate, Effect,\r\n DialogConfirm, MsgValidate, ParseHtml, MsgValidateMaxLength, resetFromSubmitData\r\n} from '../SysComponent/SystemComponent';\r\nimport { Formik, Form, Field, FastField } from \"formik\";\r\nimport SelectFormItem from '../form/SelectFormItem';\r\nimport { MuiButtonSaveFront, MuiButtonRejectFront, MuiButtonApproveFront, MuiButtonCancelFront } from '../SysComponent/MaterialComponent';\r\nimport DatePickerFormItem from \"../form/DatePickerFormItem\";\r\nimport DateRangeOutlinedIcon from '@material-ui/icons/DateRangeOutlined';\r\nimport InputAdornment from '@material-ui/core/InputAdornment/InputAdornment';\r\nimport * as yup from 'yup';\r\nimport TextAreaFormItem from \"../form/TextAreaFormItem\";\r\nimport TimePickerFormItem from '../form/TimePickerFormItem'\r\nimport { List as LINQ } from 'linqts';\r\nimport { Label } from 'reactstrap';\r\nimport { withStyles, Theme, createStyles, makeStyles } from '@material-ui/core/styles';\r\nimport CheckboxFormItem from \"../form/CheckboxFormItem\";\r\nimport CheckboxListFormItem from \"../form/CheckboxListFormItem\";\r\nimport { UploadFile } from '../form/Fileuploader';\r\nimport { DialogRemark } from '../DialogComponents/DialogRemark';\r\nconst sController = \"EventApprove\";\r\nconst dateFormat = require('dateformat');;\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n txtNode: {\r\n \"background-color\": \"#ededed\",\r\n \"width\": \"100%\",\r\n \"padding\": \"3px\",\r\n \"font-size\": \"13px\",\r\n \"color\": \"#1000ff\",\r\n \"font-weight\": \"bold\"\r\n },\r\n }),\r\n);\r\n\r\nconst EventApprove = (props) => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const { onClose, open, title, eventID, Mode } = props;\r\n const [isSecurityLevelPass, setSecurityLevelPass] = useState(true);\r\n\r\n const [dataEdite, setData] = useState({\r\n lstEventGroup: [],\r\n lstCompany: [],\r\n lstArea: [],\r\n lstEventType: [],\r\n lstSubEventType: [],\r\n editeData: null,\r\n lstWorkingTime: [],\r\n lstSecurityLevel: [],\r\n });\r\n\r\n const handleClose = (e) => {\r\n onClose(e);\r\n };\r\n\r\n const LoadData = async () => {\r\n let obj = {\r\n 'nEventID': eventID\r\n };\r\n AxiosPost(sController + \"/GetData\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setData({\r\n ...dataEdite,\r\n lstEventGroup: response.lstEventGroup,\r\n lstCompany: response.lstCompyne,\r\n lstArea: response.lstArea,\r\n lstEventType: response.lstEventType,\r\n lstSubEventType: response.lstSubEventType,\r\n editeData: response.EditeData,\r\n lstWorkingTime: response.lstWorkingTime,\r\n lstSecurityLevel: response.lstSecurityLevel,\r\n });\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n const Operation = useCallback(() => {\r\n return ()\r\n }, [dataEdite]);\r\n\r\n return (\r\n \r\n { handleClose(e) }} style={{ zIndex: 40 }}\r\n disableBackdropClick\r\n disableEscapeKeyDown\r\n aria-labelledby=\"form-dialog-title\"\r\n maxWidth=\"md\"\r\n fullWidth={true}\r\n open={open}>\r\n {title}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst FromEventOperation = (props) => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [isShoweTime, setisShoweTime] = useState(false);\r\n const [CheckTimeEndSelect, setCheckTimeEndSelect] = useState(false);\r\n const [lstSubEventTypeData, setlstSubEventType] = useState([] as any[]);\r\n const [isLoad, setOnLoad] = useState({ isLoadSubEventType: true });\r\n\r\n const {\r\n onClose,\r\n lstEventGroup,\r\n lstCompany,\r\n lstArea,\r\n lstEventType,\r\n editeData,\r\n lstWorkingTime,\r\n lstSecurityLevel,\r\n Mode } = props;\r\n // const [SecurityLevelOLO, setSecurityLevelOLO] = useState(editeData.SecurityLevel + \"\");\r\n const handleClose = () => {\r\n onClose(\"\");\r\n };\r\n const [isSecurityLevelPass, setSecurityLevelPass] = useState(editeData!=null?editeData.isLevelPass:true);\r\n const [inFromEventReport, setFromEventReport] = useState({\r\n nEventID: editeData != null ? editeData.nEventID : null,\r\n EventGroup: editeData != null ? editeData.nEventGroupID + \"\" : \"\",\r\n Company: editeData != null ? editeData.nCompanyID + \"\" : \"\",\r\n Area: editeData != null ? editeData.nAreaID + \"\" : \"\",\r\n EventDate: editeData != null ? editeData.dEventDate : \"\",\r\n EventType: editeData != null ? editeData.nEventTypeID + \"\" : \"\",\r\n SubEventType: editeData != null && editeData.nSubEventTypeID != null ? editeData.nSubEventTypeID + \"\" : \"\",\r\n EventTimeStrat: editeData != null ? editeData.sEventStartTime != \"\" ? new Date(\"2020/01/11 \" + editeData.sEventStartTime) : \"\" : \"\",\r\n EventTimeEnd: editeData != null ? editeData.sEventEndTime != \"\" ? new Date(\"2020/01/11 \" + editeData.sEventEndTime) : \"\" : \"\",\r\n CheckTimeEnd: editeData != null ? editeData.cEventNotEnd === \"Y\" ? true : false : false,\r\n WorkingTime: editeData != null && editeData.lstWorkingTime != null ? new LINQ(editeData.lstWorkingTime).Select(s => s + \"\").ToArray() : [],\r\n Description: editeData != null ? editeData.sEventDesc : \"\",\r\n ApproveRemark: editeData != null ? editeData.sApproveRemark === null ? \"\" : editeData.sApproveRemark + \"\" : \"\",\r\n FileData: editeData != null ? editeData.lstFileData : \"\",\r\n SecurityLevel: editeData != null && editeData.nLevelID != null ? editeData.nLevelID + \"\" : \"\",\r\n SecurityDescription: editeData != null ? editeData.sSecurityDesc : \"\",\r\n Status: editeData != null && editeData.nStatus != null ? editeData.nStatus : 1,\r\n\r\n });\r\n const [ActionMode, setActionMode] = useState(\"\");\r\n const validateOperation = yup.object().shape({\r\n EventGroup: yup.string().required(MsgValidate.PleaseSpecify + 'Event Group'),\r\n Company: yup.string().required(MsgValidate.PleaseSpecify + 'Company'),\r\n Area: yup.string().required(MsgValidate.PleaseSpecify + 'Area'),\r\n EventDate: yup.date().typeError(\"Inactive Event Date\").required(MsgValidate.PleaseSpecify + ' Date'),\r\n WorkingTime: yup.string().when(\"EventGroup\", (val) => (val === \"2\"\r\n ? yup.array().required(MsgValidate.PleaseSpecify + 'Working Time')\r\n : yup.array().notRequired())),\r\n EventType: yup.string().required(MsgValidate.PleaseSpecify + ' Event Type'),\r\n SubEventType: lstSubEventTypeData.length > 0 ? yup.string().required(MsgValidate.PleaseSpecify + ' Sub Event Type') : \"\",\r\n EventTimeStrat:\r\n isShoweTime ?\r\n yup.date().typeError(MsgValidate.PleaseSpecify + ' Start Time')\r\n .required(MsgValidate.PleaseSpecify + ' Start Time')\r\n .when(\"EventDate\", (val) => (checkDate(val)\r\n ? \r\n yup.date().typeError(MsgValidate.PleaseSpecify + ' Start Time').required(MsgValidate.PleaseSpecify + ' Start Time').max(new Date(), \"ไม่สามารถระบุเวลาล่วงหน้าได้\")\r\n :\r\n yup.date().typeError(MsgValidate.PleaseSpecify + ' Start Time').required(MsgValidate.PleaseSpecify + ' Start Time')\r\n ))\r\n : \"\",\r\n EventTimeEnd: isShoweTime ? yup.date().typeError(MsgValidate.PleaseSpecify + ' End Time').required(MsgValidate.PleaseSpecify + ' End Time') : \"\",\r\n Description: isShoweTime ? yup.string().max(4000, MsgValidateMaxLength(\"Description\", 4000)).required(MsgValidate.PleaseSpecify + ' Description') : yup.string().max(4000, MsgValidateMaxLength(\"Description\", 4000)),\r\n ApproveRemark: ActionMode === \"Reject\" ? Mode === \"Approve\" ? yup.string().required('กรุณาระบุสาเหตุในการปฏิเสธรายงาน (Please Specify Reject Reason)').max(4000, MsgValidateMaxLength(\"Reject Reason\", 4000)) : \"\" : \"\",\r\n SecurityLevel: yup.string().when(\"EventGroup\", (val) => (val === \"3\"\r\n ? yup.string().required(MsgValidate.PleaseSpecify + 'Security Level')\r\n : yup.string().notRequired())),\r\n SecurityDescription: yup.string().when(\"EventGroup\", (val) => (val === \"3\" ? \r\n isSecurityLevelPass === false ?\r\n yup.string().max(4000, MsgValidateMaxLength(\"Security Description\", 4000)).required(MsgValidate.PleaseSpecify + ' Security Description') \r\n : yup.string().max(4000, MsgValidateMaxLength(\"Security Description\", 4000)): yup.string().notRequired())),\r\n });\r\n\r\n const checkDate = (Eventdate_) => {\r\n var today = new Date();\r\n var dd_now = today.getDate();\r\n var mm_now = today.getMonth() + 1;\r\n var yyyy_now = today.getFullYear();\r\n var dateNow_ = new Date(yyyy_now, mm_now, dd_now);\r\n\r\n var today_Event = Eventdate_; //|| new Date();\r\n var dd_Event = today_Event.getDate();\r\n var mm_Event = today_Event.getMonth() + 1;\r\n var yyyy_Event = today_Event.getFullYear();\r\n var dateEvent_ = new Date(yyyy_Event, mm_Event, dd_Event);\r\n\r\n var res = false;\r\n if (dateEvent_ < dateNow_) {\r\n res = false;\r\n } else if (dd_now === dd_Event && mm_now === mm_Event &&yyyy_now === yyyy_Event ) {\r\n res = true;\r\n }\r\n return res;\r\n }\r\n\r\n const onSave = (values) => {\r\n ///0 =Edite\r\n ///1 =Approve\r\n ///2 =Reject\r\n let nMode = 0;\r\n let nPass = 0;\r\n if (ActionMode == \"Reject\") {\r\n nMode = 2;\r\n if (values.ApproveRemark === \"\") {\r\n nPass = 1;\r\n }\r\n } else if (ActionMode === \"Approve\") {\r\n nMode = 1;\r\n } else {\r\n nMode = 0;\r\n }\r\n if (nPass === 0) {\r\n let obj = {\r\n nEventID: values.nEventID,\r\n nEventGroupID: +values.EventGroup,\r\n nCompanyID: +values.Company,\r\n nEventTypeID: +values.EventType,\r\n nSubEventTypeID: values.SubEventType === \"\" ? null : +values.SubEventType,\r\n nAreaID: +values.Area,\r\n sEventDate: dateFormat(values.EventDate, \"dd/mm/yyyy\"),\r\n sEventStartTime: isShoweTime ? dateFormat(values.EventTimeStrat, \"HH:MM\") : \"\",\r\n sEventEndTime: isShoweTime ? dateFormat(values.EventTimeEnd, \"HH:MM\") : \"\",\r\n cEventNotEnd: values.CheckTimeEnd ? \"Y\" : \"N\",\r\n sEventDesc: values.Description,\r\n nLevelID: values.SecurityLevel !== \"\" ? +values.SecurityLevel : null,\r\n sSecurityDesc: values.SecurityDescription,\r\n lstWorkingTime: new LINQ(values.WorkingTime).Select(s => (+s)).ToArray(),\r\n sApproveRemark: values.ApproveRemark,\r\n nStatus: values.Status,\r\n lstFileData: values.FileData,\r\n nMode: nMode,\r\n };\r\n\r\n DialogConfirm(() => {\r\n AxiosPost(sController + \"/SaveData\", obj, (response) => {\r\n ResultAPI(false, response, nMode === 1 ? \"Data is Approved.\" : nMode === 2 ? \"Data is Rejected.\" : null, () => {\r\n onClose(\"1\");\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }, null, nMode === 1 ? \"Do you want to Approve this data?\" : nMode === 2 ? \"Do you want to Reject this data?\" : \"\");\r\n }\r\n };\r\n\r\n const onEventType = (EventType, formProps) => {\r\n if (EventType !== \"\") {\r\n let Node = 0;\r\n let q = new LINQ(lstEventType).Where(f => f.value === EventType).FirstOrDefault();\r\n Node = q != undefined && q.nEventColor;\r\n setisShoweTime(Node === 3 ? false : true);\r\n if (isLoad.isLoadSubEventType) {\r\n GetSubEventType(EventType, formProps);\r\n }\r\n }\r\n };\r\n\r\n const GetSubEventType = (EventType, formProps) => {\r\n let obj = {\r\n 'nEventType': +EventType\r\n };\r\n if (!isLoad.isLoadSubEventType) { formProps.values.SubEventType = \"\" }\r\n AxiosPost(sController + \"/GetSubEventType\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setlstSubEventType(response);\r\n setOnLoad({ ...isLoad, isLoadSubEventType: false });\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n const EventTimeEndControl = useCallback((Props) => {\r\n const { formProps } = Props;\r\n return (\r\n \r\n \r\n \r\n )\r\n }, [CheckTimeEndSelect, Mode]);\r\n\r\n const RemarkEventType = (Props) => {\r\n const { formProps } = Props;\r\n let Node = \"\";\r\n if (formProps.values.SubEventType != \"\") {\r\n let q = new LINQ(lstSubEventTypeData).Where(f => f.value === formProps.values.SubEventType).FirstOrDefault();\r\n Node = q != undefined && q.sRemark;\r\n } else {\r\n let q = new LINQ(lstEventType).Where(f => f.value === formProps.values.EventType).FirstOrDefault();\r\n Node = q != undefined && q.sRemark;\r\n }\r\n return (\r\n \r\n {Node != \"\" && }\r\n \r\n )\r\n };\r\n const [openLe, setOpenLe] = React.useState({ Remark: false, sNote: \"\" });\r\n\r\n const handleCloseLe = (value: string) => {\r\n setOpenLe({ ...openLe, Remark: false, sNote: \"\" });\r\n };\r\n\r\n const checkLevel = (nSecurityLevelID, formProps) => {\r\n let qbj = {\r\n nEventID: +formProps.values.nEventID,\r\n nAreaID: +formProps.values.Area,\r\n nLevelID: +nSecurityLevelID,\r\n sEventDate:dateFormat(formProps.values.EventDate, \"dd/mm/yyyy\")\r\n };\r\n AxiosPost(sController + \"/CheclSecurity\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n if (response.isPass == false) {\r\n setOpenLe({ ...openLe, Remark: true, sNote: \"เนื่องจากมีการปรับเปลี่ยนระดับ Security Level โปรดระบุเหตุผลของการปรับระดับการเตือนภัย\"});\r\n\r\n setSecurityLevelPass(false);\r\n } else {\r\n setSecurityLevelPass(true);\r\n }\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n {(formProps) => {\r\n onEventType(formProps.values.EventType, formProps);\r\n setCheckTimeEndSelect(formProps.values.CheckTimeEnd);\r\n return (\r\n
\r\n {\r\n scrollToElementValidate(\"formCreateInfo\");\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n } />\r\n {formProps.values.EventGroup === \"2\" &&\r\n }\r\n {formProps.values.EventGroup === \"3\" &&\r\n \r\n { checkLevel(data, formProps) }}/>\r\n \r\n \r\n }\r\n \r\n \r\n {\r\n GetSubEventType(data, formProps);\r\n }} />\r\n\r\n {lstSubEventTypeData.length > 0 && }\r\n \r\n {isShoweTime && \r\n ช่วงเวลาที่เกิดเหตุการณ์ผิดปกติ (Abnormal Time)\r\n \r\n \r\n \r\n { e && formProps.setFieldValue(\"EventTimeEnd\",new Date(\"2020/01/11 08:00\"))}} />\r\n \r\n }\r\n\r\n \r\n { formProps.values.FileData = e }}\r\n isView={Mode === \"View\"}\r\n />\r\n \r\n {Mode === \"Approve\" &&\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n }\r\n {(formProps.values.Status === 4 && Mode !== \"Approve\")&&\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n }\r\n
\r\n
\r\n \r\n {Mode === \"Approve\" && { setActionMode(\"Approve\"); formProps.submitForm() }}>Approve\r\n { setActionMode(\"Reject\"); formProps.submitForm() }}>Reject\r\n }\r\n {Mode === \"Edite\" &&\r\n \r\n { setActionMode(\"Edite\"); formProps.submitForm() }}>Save\r\n }\r\n Close\r\n \r\n \r\n )\r\n }}\r\n \r\n
\r\n )\r\n};\r\n\r\nexport default EventApprove;","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport FormErrors from \"./formErrors\";\r\nimport { FastField } from \"formik\";\r\nimport DateFnsUtils from \"@material-ui/pickers/adapter/date-fns\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport {\r\n MobileDateRangePicker,\r\n DateRangeDelimiter,\r\n LocalizationProvider,\r\n DateTimePicker,\r\n DatePicker,\r\n} from \"@material-ui/pickers\";\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport DateRangeOutlinedIcon from '@material-ui/icons/DateRangeOutlined';\r\nimport InputAdornment from '@material-ui/core/InputAdornment/InputAdornment';\r\nimport { getLanguage } from \"../../i18n\";\r\nimport { i18n } from \"../../i18n\";\r\n\r\nconst StyledInput = withStyles({\r\n root: {\r\n width: \"100%\",\r\n top: \"4px\",\r\n \"& .MuiOutlinedInput-inputMarginDense\": {\r\n minHeight: \"24px\",\r\n },\r\n \"& .MuiInputLabel-outlined\": {\r\n top: 1,\r\n }\r\n }\r\n})((props) => );\r\n\r\nclass DatePickerRangeFormItemNotFast extends Component {\r\n handleStartChanged = (value) => {\r\n const { form, name } = this.props;\r\n form.setFieldTouched(name);\r\n form.setFieldValue(name, [value, this.endValue()]);\r\n };\r\n\r\n handleEndChanged = (value) => {\r\n const { form, name } = this.props;\r\n form.setFieldTouched(name);\r\n form.setFieldValue(name, [this.startValue(), value]);\r\n };\r\n\r\n value = () => {\r\n const { form, name } = this.props;\r\n if (!form.values[name][0] && !form.values[name][1]) {\r\n return undefined;\r\n }\r\n return [form.values[name][0] || null, form.values[name][1] || null];\r\n };\r\n\r\n handleChangeValue = (date) => {\r\n const { form, name } = this.props;\r\n if (!form.values[name][0] || !form.values[name][1]) {\r\n form.setFieldValue(name, (date || []).filter(f => f != null));\r\n } else {\r\n form.setFieldTouched(name);\r\n form.setFieldValue(name, (date || []).filter(f => f != null));\r\n }\r\n if (this.props.onChangedCallback) {\r\n this.props.onChangedCallback(date)\r\n }\r\n };\r\n\r\n startValue = () => {\r\n if (!this.value()) {\r\n return null;\r\n }\r\n\r\n if (Array.isArray(!this.value())) {\r\n return null;\r\n }\r\n\r\n if (!this.value().length) {\r\n return null;\r\n }\r\n\r\n return this.value()[0] || null;\r\n };\r\n\r\n endValue = () => {\r\n if (!this.value()) {\r\n return null;\r\n }\r\n\r\n if (Array.isArray(!this.value())) {\r\n return null;\r\n }\r\n\r\n if (this.value().length < 2) {\r\n return null;\r\n }\r\n\r\n return this.value()[1] || null;\r\n };\r\n\r\n _validateion = () => {\r\n const { form, name, required } = this.props;\r\n const toShowError = form.touched[name] ? !!form.touched[name] : false;\r\n if (required) {\r\n if (!form.touched[name]) {\r\n form.setErrors({\r\n ...form.errors,\r\n [name]: `Date should not be before`,\r\n });\r\n return false;\r\n }\r\n\r\n const errors = form.errors[name];\r\n\r\n if (!errors) {\r\n form.setErrors({\r\n ...form.errors,\r\n [name]: `Date should not be errors`,\r\n });\r\n return false;\r\n }\r\n\r\n return true;\r\n } else {\r\n return required;\r\n }\r\n };\r\n\r\n render() {\r\n const {\r\n label,\r\n name,\r\n form,\r\n hint,\r\n placeholder,\r\n autoFocus,\r\n autoComplete,\r\n inputProps,\r\n errorMessage,\r\n required,\r\n showTime,\r\n maxDate,\r\n onCloseCallback\r\n } = this.props;\r\n\r\n const DateTimePickerComponent = showTime ? DateTimePicker : DatePicker;\r\n const format = showTime ? \"dd/MM/yyyy HH:mm\" : \"dd/MM/yyyy\";\r\n const selectDate = this.value() || [null, null];\r\n //const isInvalid = this._validateion();\r\n\r\n return (\r\n
\r\n this.handleChangeValue(value)}\r\n onClose={onCloseCallback}\r\n {...inputProps}\r\n autoOk={false}\r\n renderInput={(startProps, endProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n }}\r\n />\r\n to \r\n \r\n \r\n \r\n )\r\n }}\r\n />\r\n \r\n );\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nDatePickerRangeFormItemNotFast.defaultProps = {\r\n required: false,\r\n};\r\n\r\nDatePickerRangeFormItemNotFast.propTypes = {\r\n form: PropTypes.object.isRequired,\r\n name: PropTypes.string.isRequired,\r\n label: PropTypes.string,\r\n hint: PropTypes.string,\r\n autoFocus: PropTypes.bool,\r\n required: PropTypes.bool,\r\n size: PropTypes.string,\r\n prefix: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n formItemProps: PropTypes.object,\r\n inputProps: PropTypes.object,\r\n};\r\n\r\nclass DatePickerRangeFormItem extends Component {\r\n render() {\r\n return (\r\n \r\n (\r\n \r\n )}\r\n />\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default DatePickerRangeFormItem;\r\n","import React, { Fragment, useEffect, useState, useCallback, useMemo } from 'react'\r\nimport { Grid, Card } from '@material-ui/core';\r\nimport { CardBody, Label, Table } from 'reactstrap';\r\nimport {\r\n FnBlock_UI, AxiosPost, ResultAPI, DialogConfirmDelete, DialogConfirm, MsgValidate, ParseHtml, MsgValidateMaxLength,\r\n resetFromSubmitData, ResultDeleteAPI, SwAlert, AlertTitle\r\n} from '../SysComponent/SystemComponent';\r\nimport { Formik, Form, Field, FastField } from \"formik\";\r\nimport * as yup from 'yup';\r\nimport SelectFormItem from '../form/SelectFormItem';\r\nimport TimePickerFormItem from '../form/TimePickerFormItem'\r\nimport CheckboxFormItem from \"../form/CheckboxFormItem\";\r\nimport DatePickerFormItem from \"../form/DatePickerFormItem\";\r\nimport CheckboxListFormItem from \"../form/CheckboxListFormItem\";\r\nimport TextAreaFormItem from \"../form/TextAreaFormItem\";\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport Button from '@material-ui/core/Button';\r\nimport DateRangeOutlinedIcon from '@material-ui/icons/DateRangeOutlined';\r\nimport InputAdornment from '@material-ui/core/InputAdornment/InputAdornment';\r\nimport { List as LINQ } from 'linqts';\r\nimport { UploadFile } from '../form/Fileuploader';\r\nimport { withStyles, Theme, createStyles, makeStyles } from '@material-ui/core/styles';\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport { EventColorCompronent, SecurityLevelColorCompronent, MuiButtonSubmit, MuiButtonCancelFront } from '../SysComponent/MaterialComponent'\r\nimport EventApprove from './EventApprove'\r\nimport { DialogRemark } from '../DialogComponents/DialogRemark';\r\nimport DatePickerRangeFormItem from '../../components/form/DatePickerRangeFormItem'\r\nimport Swal, { SweetAlertIcon } from \"sweetalert2\";\r\nconst sController = \"CreateReport\";\r\nconst dateFormat = require('dateformat');\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n txtNode: {\r\n \"background-color\": \"#ededed\",\r\n \"width\": \"100%\",\r\n \"padding\": \"3px\",\r\n \"font-size\": \"13px\",\r\n \"color\": \"#1000ff\",\r\n \"font-weight\": \"bold\"\r\n },\r\n }),\r\n);\r\n\r\nconst fnInitialDataUser = {\r\n nEventID: null,\r\n EventGroup: \"\",\r\n Company: \"\",\r\n Area: [] as any[],\r\n EventDate: new Date() as Date,\r\n EventType: \"\",\r\n SubEventType: \"\",\r\n EventTimeStrat: null as any,\r\n EventTimeEnd: null as any,\r\n CheckTimeEnd: false,\r\n WorkingTime: [] as any[],\r\n Description: \"\",\r\n SecurityLevel: \"\",\r\n SecurityDescription: \"\",\r\n AdvanceEventDate: [],\r\n AdvanceReport: false\r\n\r\n};\r\n\r\nconst CreateReport = () => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [lstEventGroup, setlstEventGroup] = useState([] as any);\r\n const [lstEventType, setlstEventType] = useState([] as any);\r\n const [lstSubEventType, setlstSubEventType] = useState([] as any);\r\n const [lstCompany, setlstCompany] = useState([] as any);\r\n const [lstCompyneCSR, setCompyneCSR] = useState([] as any);\r\n const [lstArea, setlstArea] = useState([] as any);\r\n const [SecurityLevel, setSecurityLevel] = useState([] as any);\r\n const [lstWorkingTime, setlstWorkingTime] = useState([] as any);\r\n\r\n const [isShoweTime, setisShoweTime] = useState(true);\r\n const [CompanySelect, setCompanySelect] = useState(\"\" as any);\r\n const [EventGroupSelect, setEventGroupSelect] = useState(\"\" as any);\r\n const [AreaSelect, setAreaSelect] = useState([] as any[]);\r\n const [EventDataSelect, setEventDataSelect] = useState(new Date() as Date);\r\n const [CheckTimeEndSelect, setCheckTimeEndSelect] = useState(false);\r\n const [FileData_, setFileData_] = useState([] as any[]);\r\n const [lstEventReport, setlstEventReport] = useState([] as any[]);\r\n const [isEdite, setisEdite] = useState(false);\r\n const [isClearFile, setisClearFile] = useState(false);\r\n const [lstEventTypeMaster, setlstEventTypeMaster] = useState([] as any[]);\r\n const [lstEventTypeMaster_Sub, setlstEventTypeMaster_Sub] = useState([] as any[]);\r\n const [lstWorkingTimeMaster, setlstWorkingTimeMaster] = useState([] as any[]);\r\n\r\n const [isSecurityLevelPass, setSecurityLevelPass] = useState(true);\r\n const [cAdvanceReport, setcAdvanceReport] = useState(false);\r\n const [ShowAdvanceReport, setShowAdvanceReport] = useState(false);\r\n const [maxDateEv, setmaxDateEv] = useState(new Date());\r\n const [resultGetAdvanceReport, setresultGetAdvanceReport] = useState([new Date(), new Date()] as any);\r\n //#region From Event\r\n const [inFromEventReport, setFromEventReport] = useState(fnInitialDataUser);\r\n\r\n const _validateForm = () => {\r\n if (EventGroupSelect === \"1\") {\r\n return validateCSR;\r\n } else if (EventGroupSelect === \"2\") {\r\n return validateOperation;\r\n } else if (EventGroupSelect === \"3\") {\r\n return validateSecurity;\r\n } else {\r\n return yup.object().shape({\r\n EventGroup: yup.string().required('Please Specify Event Group'),\r\n Company: yup.string().required(MsgValidate.PleaseSpecify + 'Company'),\r\n EventType: yup.string().required(MsgValidate.PleaseSpecify + ' Event Type'),\r\n EventDate: cAdvanceReport ? \"\" : yup.date().typeError(MsgValidate.PleaseSpecify + \"Event Date\").required(MsgValidate.PleaseSpecify + 'Event Date'),\r\n Area: yup.array().required(MsgValidate.PleaseSpecify + 'Area Name/Sub Area Name'),\r\n AdvanceEventDate: cAdvanceReport ? yup.array().min(2, MsgValidate.PleaseSpecify + 'Event Date').required(MsgValidate.PleaseSpecify + 'Event Date') : \"\",\r\n });\r\n }\r\n }\r\n const checkDate = (Eventdate_) => {\r\n var today = new Date();\r\n var dd_now = today.getDate();\r\n var mm_now = today.getMonth() + 1;\r\n var yyyy_now = today.getFullYear();\r\n var dateNow_ = new Date(yyyy_now, mm_now, dd_now);\r\n\r\n var today_Event = Eventdate_; //|| new Date();\r\n var dd_Event = today_Event.getDate();\r\n var mm_Event = today_Event.getMonth() + 1;\r\n var yyyy_Event = today_Event.getFullYear();\r\n var dateEvent_ = new Date(yyyy_Event, mm_Event, dd_Event);\r\n\r\n var res = false;\r\n if (dateEvent_ < dateNow_) {\r\n res = false;\r\n } else if (dd_now === dd_Event && mm_now === mm_Event && yyyy_now === yyyy_Event) {\r\n res = true;\r\n }\r\n return res;\r\n }\r\n const validateCSR = yup.object().shape({\r\n EventGroup: yup.string().required(MsgValidate.PleaseSpecify + 'Event Group'),\r\n Company: yup.string().required(MsgValidate.PleaseSpecify + 'พื้นที่ CSR (CSR Area)'),\r\n Area: yup.array().required(MsgValidate.PleaseSpecify + 'Area Name/Sub Area Name'),\r\n EventDate: cAdvanceReport ? \"\" : yup.date().typeError(MsgValidate.PleaseSpecify + \"Event Date\").required(MsgValidate.PleaseSpecify + 'Event Date'),\r\n EventType: yup.string().required(MsgValidate.PleaseSpecify + ' Event Type'),\r\n SubEventType: yup.string().when(\"EventType\", (val) => (new LINQ(lstEventTypeMaster_Sub).Where(w => w.nHearID === (+val)).ToArray().length > 0\r\n ? yup.string().required(MsgValidate.PleaseSpecify + 'Sub Event Type')\r\n : yup.string().notRequired())),\r\n EventTimeStrat:\r\n isShoweTime ?\r\n yup.date().typeError(MsgValidate.PleaseSpecify + ' Start Time')\r\n .required(MsgValidate.PleaseSpecify + ' Start Time')\r\n .when(\"EventDate\", (val) => (checkDate(val)\r\n ?\r\n yup.date().typeError(MsgValidate.PleaseSpecify + ' Start Time').required(MsgValidate.PleaseSpecify + ' Start Time').max(new Date(), \"ไม่สามารถระบุเวลาล่วงหน้าได้\")\r\n :\r\n yup.date().typeError(MsgValidate.PleaseSpecify + ' Start Time').required(MsgValidate.PleaseSpecify + ' Start Time')\r\n ))\r\n : \"\",\r\n EventTimeEnd: isShoweTime ? CheckTimeEndSelect ? \"\" : yup.date().typeError(MsgValidate.PleaseSpecify + ' End Time').required(MsgValidate.PleaseSpecify + ' End Time') : \"\",\r\n Description: isShoweTime ? yup.string().max(4000, MsgValidateMaxLength(\"Description\", 4000)).required(MsgValidate.PleaseSpecify + ' Description') : yup.string().max(4000, MsgValidateMaxLength(\"Description\", 4000)),\r\n AdvanceEventDate: cAdvanceReport ? yup.array().required(MsgValidate.PleaseSpecify + 'Event Date') : \"\",\r\n });\r\n const validateOperation = yup.object().shape({\r\n EventGroup: yup.string().required(MsgValidate.PleaseSpecify + 'Event Group'),\r\n Company: yup.string().required(MsgValidate.PleaseSpecify + 'Company'),\r\n Area: yup.array().required(MsgValidate.PleaseSpecify + 'Area Name/Sub Area Name'),\r\n EventDate: cAdvanceReport ? \"\" : yup.date().typeError(MsgValidate.PleaseSpecify + \"Event Date\").required(MsgValidate.PleaseSpecify + 'Event Date'),\r\n EventType: yup.string().required(MsgValidate.PleaseSpecify + ' Event Type'),\r\n SubEventType: yup.string().when(\"EventType\", (val) => (new LINQ(lstEventTypeMaster_Sub).Where(w => w.nHearID === (+val)).ToArray().length > 0\r\n ? yup.string().required(MsgValidate.PleaseSpecify + 'Sub Event Type')\r\n : yup.string().notRequired())),\r\n EventTimeStrat:\r\n isShoweTime ?\r\n yup.date().typeError(MsgValidate.PleaseSpecify + ' Start Time')\r\n .required(MsgValidate.PleaseSpecify + ' Start Time')\r\n .when(\"EventDate\", (val) => (checkDate(val)\r\n ?\r\n yup.date().typeError(MsgValidate.PleaseSpecify + ' Start Time').required(MsgValidate.PleaseSpecify + ' Start Time').max(new Date(), \"ไม่สามารถระบุเวลาล่วงหน้าได้\")\r\n :\r\n yup.date().typeError(MsgValidate.PleaseSpecify + ' Start Time').required(MsgValidate.PleaseSpecify + ' Start Time')\r\n ))\r\n : \"\",\r\n EventTimeEnd: isShoweTime ? CheckTimeEndSelect ? \"\" : yup.date().typeError(MsgValidate.PleaseSpecify + ' End Time').required(MsgValidate.PleaseSpecify + ' End Time') : \"\",\r\n WorkingTime: yup.array().required(MsgValidate.PleaseSpecify + 'Working Time'),\r\n Description: isShoweTime ? yup.string().max(4000, MsgValidateMaxLength(\"Description\", 4000)).required(MsgValidate.PleaseSpecify + ' Description') : yup.string().max(4000, MsgValidateMaxLength(\"Description\", 4000)),\r\n AdvanceEventDate: cAdvanceReport ? yup.array().min(2, MsgValidate.PleaseSpecify + 'Event Date').required(MsgValidate.PleaseSpecify + 'Event Date') : \"\",\r\n });\r\n const validateSecurity = yup.object().shape({\r\n EventGroup: yup.string().required(MsgValidate.PleaseSpecify + 'Event Group'),\r\n Company: yup.string().required(MsgValidate.PleaseSpecify + 'Company'),\r\n Area: yup.array().required(MsgValidate.PleaseSpecify + 'Area'),\r\n EventDate: cAdvanceReport ? \"\" : yup.date().typeError(MsgValidate.PleaseSpecify + \"Event Date\").required(MsgValidate.PleaseSpecify + 'Event Date'),\r\n EventType: yup.string().required(MsgValidate.PleaseSpecify + ' Event Type'),\r\n SubEventType: yup.string().when(\"EventType\", (val) => (new LINQ(lstEventTypeMaster_Sub).Where(w => w.nHearID === (+val)).ToArray().length > 0\r\n ? yup.string().required(MsgValidate.PleaseSpecify + 'Sub Event Type')\r\n : yup.string().notRequired())),\r\n EventTimeStrat:\r\n isShoweTime ?\r\n yup.date().typeError(MsgValidate.PleaseSpecify + ' Start Time')\r\n .required(MsgValidate.PleaseSpecify + ' Start Time')\r\n .when(\"EventDate\", (val) => (checkDate(val)\r\n ?\r\n yup.date().typeError(MsgValidate.PleaseSpecify + ' Start Time').required(MsgValidate.PleaseSpecify + ' Start Time').max(new Date(), \"ไม่สามารถระบุเวลาล่วงหน้าได้\")\r\n :\r\n yup.date().typeError(MsgValidate.PleaseSpecify + ' Start Time').required(MsgValidate.PleaseSpecify + ' Start Time')\r\n ))\r\n : \"\",\r\n EventTimeEnd: isShoweTime ? CheckTimeEndSelect ? \"\" : yup.date().typeError(MsgValidate.PleaseSpecify + ' End Time').required(MsgValidate.PleaseSpecify + ' End Time') : \"\",\r\n Description: isShoweTime ? yup.string().max(4000, MsgValidateMaxLength(\"Description\", 4000)).required(MsgValidate.PleaseSpecify + ' Description') : yup.string().max(4000, MsgValidateMaxLength(\"Description\", 4000)),\r\n SecurityLevel: yup.string().required(MsgValidate.PleaseSpecify + ' Security Level'),\r\n SecurityDescription: isSecurityLevelPass === false ? yup.string().max(4000, MsgValidateMaxLength(\"Security Description\", 4000)).required(MsgValidate.PleaseSpecify + ' Security Description') : yup.string().max(4000, MsgValidateMaxLength(\"Security Description\", 4000)),\r\n AdvanceEventDate: cAdvanceReport ? yup.array().min(2, MsgValidate.PleaseSpecify + 'Event Date').required(MsgValidate.PleaseSpecify + 'Event Date') : \"\",\r\n });\r\n\r\n const onSave = (values, { setFieldValue, setFieldError }) => {\r\n let obj = {\r\n nEventID: values.nEventID,\r\n nEventGroupID: +values.EventGroup,\r\n nCompanyID: +values.Company,\r\n nEventTypeID: +values.EventType,\r\n nSubEventTypeID: values.SubEventType === \"\" ? null : +values.SubEventType,\r\n nAreaID: new LINQ(values.Area).Select(s => (+s)).ToArray(),\r\n sEventDate: dateFormat(values.EventDate, \"dd/mm/yyyy\"),\r\n sEventStartTime: isShoweTime ? dateFormat(values.EventTimeStrat, \"HH:MM\") : \"\",\r\n sEventEndTime: isShoweTime ? dateFormat(values.EventTimeEnd, \"HH:MM\") : \"\",\r\n cEventNotEnd: values.CheckTimeEnd,\r\n sEventDesc: values.Description,\r\n nLevelID: values.SecurityLevel !== \"\" ? +values.SecurityLevel : null,\r\n sSecurityDesc: values.SecurityDescription,\r\n lstWorkingTime: new LINQ(values.WorkingTime).Select(s => (+s)).ToArray(),\r\n lstFileData: FileData_,\r\n sAdvanceStartDate: values.AdvanceEventDate.length > 0 ? dateFormat(values.AdvanceEventDate[0], \"dd/mm/yyyy\") : \"\",\r\n sAdvanceEndDate: values.AdvanceEventDate.length > 1 ? dateFormat(values.AdvanceEventDate[1], \"dd/mm/yyyy\") : \"\",\r\n cAdvanceReport: values.AdvanceReport ? true : false,\r\n };\r\n DialogConfirm(() => {\r\n AxiosPost(sController + \"/SaveData\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n if (response.sStatus === \"NO\") {\r\n if (response.sMsg != null && response.sMsg != \"\") {\r\n setOpenLe({ ...openLe, Remark: true, sNote: response.sMsg });\r\n Swal.close();\r\n }\r\n } else {\r\n loadListEventReport(values.EventGroup, values.Company, values.EventDate, values.Area, true);\r\n resetFrom(setFieldValue, setFieldError, \"Save\");\r\n }\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n };\r\n\r\n const resetFrom = (setFieldValue, setFieldError, sMode) => {\r\n if (sMode === \"Save\") {\r\n resetFromSubmitData(setFieldValue, setFieldError, \"nEventID\", null)\r\n // resetFromSubmitData(setFieldValue, setFieldError, \"EventGroup\", null)\r\n // resetFromSubmitData(setFieldValue, setFieldError, \"Company\", null)\r\n // resetFromSubmitData(setFieldValue, setFieldError, \"Area\", new LINQ(lstArea).Select(s => s.value + \"\").ToArray())\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SubEventType\", \"\")\r\n resetFromSubmitData(setFieldValue, setFieldError, \"EventType\", \"\")\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SubEventType\", \"\")\r\n //resetFromSubmitData(setFieldValue, setFieldError, \"EventDate\", EventDataSelect)\r\n resetFromSubmitData(setFieldValue, setFieldError, \"EventTimeStrat\", null)\r\n resetFromSubmitData(setFieldValue, setFieldError, \"EventTimeEnd\", null)\r\n resetFromSubmitData(setFieldValue, setFieldError, \"CheckTimeEnd\", false)\r\n setCheckTimeEndSelect(false)\r\n setisShoweTime(false);\r\n // resetFromSubmitData(setFieldValue, setFieldError, \"WorkingTime\", [])\r\n resetFromSubmitData(setFieldValue, setFieldError, \"Description\", \"\")\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SecurityLevel\", \"\")\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SecurityDescription\", \"\")\r\n setFileData_([]);\r\n /// setEventDataSelect(new Date());\r\n setisClearFile(true);\r\n setisEdite(false);\r\n } else if (sMode === \"EventGroup\") {\r\n resetFromSubmitData(setFieldValue, setFieldError, \"Company\", null)\r\n resetFromSubmitData(setFieldValue, setFieldError, \"Area\", [])\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SubEventType\", \"\")\r\n resetFromSubmitData(setFieldValue, setFieldError, \"EventType\", \"\")\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SubEventType\", \"\")\r\n resetFromSubmitData(setFieldValue, setFieldError, \"WorkingTime\", [])\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SecurityLevel\", \"\")\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SecurityDescription\", \"\")\r\n resetFromSubmitData(setFieldValue, setFieldError, \"CheckTimeEnd\", false)\r\n setCheckTimeEndSelect(false)\r\n setisShoweTime(false);\r\n setlstWorkingTime([]);\r\n setAreaSelect([]);\r\n }\r\n else if (sMode === \"Company\") {\r\n resetFromSubmitData(setFieldValue, setFieldError, \"Area\", [])\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SubEventType\", \"\")\r\n resetFromSubmitData(setFieldValue, setFieldError, \"EventType\", \"\")\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SubEventType\", \"\")\r\n resetFromSubmitData(setFieldValue, setFieldError, \"WorkingTime\", [])\r\n setlstWorkingTime([]);\r\n setAreaSelect([]);\r\n } else if (sMode === \"Area\") {\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SubEventType\", \"\")\r\n resetFromSubmitData(setFieldValue, setFieldError, \"EventType\", \"\")\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SubEventType\", \"\")\r\n resetFromSubmitData(setFieldValue, setFieldError, \"WorkingTime\", [])\r\n setlstWorkingTime([]);\r\n } else if (sMode === \"EventType\") {\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SubEventType\", \"\")\r\n\r\n }\r\n\r\n };\r\n //#endregion\r\n\r\n //#region API\r\n const LoadData = () => {\r\n let qbj = {\r\n nEventGroupID: null,\r\n nCompanyID: null,\r\n lstAreaID: [],\r\n lstSubAreaID: [],\r\n sEventDate: \"\",\r\n nEventTypeID: null,\r\n };\r\n AxiosPost(sController + \"/LoadCreateReport\", qbj, (response) => {\r\n ResultAPI(false, response, null, async () => {\r\n if (response.objTAdvanceReport.IsAdvanceReport) {\r\n setShowAdvanceReport(response.objTAdvanceReport.IsAdvanceReport)\r\n setcAdvanceReport(false);\r\n setmaxDateEv(response.objTAdvanceReport.dAdvanceEndDate);\r\n setresultGetAdvanceReport(response.objTAdvanceReport.lstDate)\r\n inFromEventReport.AdvanceEventDate = response.objTAdvanceReport.lstDate\r\n } else {\r\n setShowAdvanceReport(false)\r\n setcAdvanceReport(false)\r\n inFromEventReport.AdvanceEventDate = [];\r\n }\r\n setlstArea(response.lstAreaMaster);\r\n setlstEventTypeMaster(response.lstEventTypeMaster);\r\n setlstEventTypeMaster_Sub(response.lstEventTypeMaster_Sub);\r\n setlstSubEventType(response.lstEventTypeMaster_Sub)\r\n setlstWorkingTimeMaster(response.lstWorkingTimeMaster);\r\n\r\n inFromEventReport.Area = response.lstDefaultArea;\r\n inFromEventReport.EventGroup = response.nDefaultEventGroup;\r\n inFromEventReport.Company = response.nDefaultCompany;\r\n inFromEventReport.WorkingTime = new LINQ(response.lstWorkingTimeMaster || []).Select(s => s.nWorkingTimeID + \"\").Distinct().ToArray();\r\n\r\n setFromEventReport(inFromEventReport);\r\n\r\n\r\n WorkingTimeData(response.lstDefaultArea, response.lstWorkingTimeMaster);\r\n setEventType(response.lstDefaultArea, response.nDefaultCompany, response.nDefaultEventGroup, inFromEventReport.EventDate, response.lstEventTypeMaster, null);\r\n setCompyneCSR(response.lstCompyneCSR)\r\n setlstEventGroup(response.lstEventGroup);\r\n setlstCompany(response.lstCompyne);\r\n setSecurityLevel(response.lstSecurityLevel);\r\n\r\n setEventGroupSelect(response.nDefaultEventGroup + \"\");\r\n setCompanySelect(response.nDefaultCompany + \"\")\r\n setEventDataSelect(inFromEventReport.EventDate)\r\n loadListEventReport(response.nDefaultEventGroup + \"\", response.nDefaultCompany + \"\", inFromEventReport.EventDate, inFromEventReport.Area, true);\r\n\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n const loadListEventReport = (EventGroupSelect_, CompanySelect_, EventDataSelect_, Area, LoadPrevious, formProps?) => {\r\n if (EventGroupSelect_ != \"\" && CompanySelect_ != \"\") {\r\n let qbj = {\r\n nEventGroupID: +EventGroupSelect_,\r\n nCompanyID: +CompanySelect_,\r\n sEventDate: dateFormat(EventDataSelect_, \"dd/mm/yyyy\"),\r\n };\r\n console.log(\"qbj\", qbj);\r\n\r\n AxiosPost(sController + \"/LoadListEventReport\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setlstEventReport(response);\r\n if (LoadPrevious == true) {\r\n GetEventPrevious(EventGroupSelect_, CompanySelect_, EventDataSelect_, Area, formProps)\r\n }\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n };\r\n\r\n const GetAdvanceReport = (EventGroupSelect_, formProps) => {\r\n if (EventGroupSelect_ != \"\") {\r\n let qbj = {\r\n nEventGroupID: +EventGroupSelect_,\r\n };\r\n AxiosPost(sController + \"/GetAdvanceReport\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n if (response.IsAdvanceReport) {\r\n setShowAdvanceReport(response.IsAdvanceReport)\r\n //setcAdvanceReport(response.IsAdvanceReport);\r\n setcAdvanceReport(false)\r\n formProps.setFieldValue(\"AdvanceReport\", false)\r\n setmaxDateEv(response.dAdvanceEndDate);\r\n setresultGetAdvanceReport(response.lstDate)\r\n formProps.setFieldValue(\"AdvanceEventDate\", response.lstDate)\r\n\r\n } else {\r\n setShowAdvanceReport(false)\r\n setcAdvanceReport(false)\r\n setmaxDateEv(new Date());\r\n setresultGetAdvanceReport([new Date(), new Date()])\r\n formProps.setFieldValue(\"AdvanceReport\", false)\r\n }\r\n\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n };\r\n\r\n const GetEventPrevious = (EventGroupSelect_, CompanySelect_, EventDataSelect_, Area, formProps, Mode?) => {\r\n let qbj = {\r\n nEventGroupID: +EventGroupSelect_,\r\n nCompanyID: +CompanySelect_,\r\n lstAreaID: Area,\r\n sEventDate: dateFormat(EventDataSelect_, \"dd/mm/yyyy\"),\r\n };\r\n if (EventGroupSelect_ == \"3\") {\r\n AxiosPost(sController + \"/GetEventPrevious\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n if (response.isPreviousData == true) {\r\n if (formProps) {\r\n formProps.setFieldValue(\"SecurityLevel\", response.SecurityLevel)\r\n formProps.setFieldValue(\"CheckTimeEnd\", response.CheckTimeEnd)\r\n formProps.setFieldValue(\"Description\", response.Description)\r\n formProps.setFieldValue(\"EventTimeEnd\", response.EventTimeEnd)\r\n formProps.setFieldValue(\"EventTimeStrat\", response.EventTimeStrat)\r\n // if((lstEventType||[]).filter(f=> (f.value+\"\") ==(response.EventType+\"\")).length>0){\r\n formProps.setFieldValue(\"EventType\", response.EventType)\r\n formProps.setFieldValue(\"SubEventType\", response.SubEventType)\r\n // }else{\r\n // formProps.setFieldValue(\"EventType\", \"\")\r\n // formProps.setFieldValue(\"SubEventType\", \"\")\r\n // }\r\n formProps.setFieldValue(\"SecurityDescription\", response.SecurityDescription)\r\n formProps.setFieldValue(\"WorkingTime\", response.WorkingTime)\r\n\r\n if (Mode != 1) formProps.setFieldValue(\"AdvanceEventDate\", inFromEventReport.AdvanceEventDate);\r\n } else {\r\n inFromEventReport.Area = Area;\r\n inFromEventReport.EventGroup = EventGroupSelect_;\r\n inFromEventReport.Company = CompanySelect_;\r\n inFromEventReport.CheckTimeEnd = response.CheckTimeEnd;\r\n inFromEventReport.Description = response.Description;\r\n inFromEventReport.EventDate = EventDataSelect_;\r\n inFromEventReport.EventTimeEnd = response.EventTimeEnd;\r\n inFromEventReport.EventTimeStrat = response.EventTimeStrat;\r\n // if((lstEventType||[]).filter(f=> (f.value+\"\") ==(response.EventType+\"\")).length>0){\r\n inFromEventReport.EventType = response.EventType;\r\n inFromEventReport.SubEventType = response.SubEventType;\r\n // }else{\r\n // inFromEventReport.EventType = \"\";\r\n // inFromEventReport.SubEventType = \"\";\r\n // }\r\n inFromEventReport.SecurityDescription = response.SecurityDescription;\r\n inFromEventReport.SecurityLevel = response.SecurityLevel;\r\n inFromEventReport.WorkingTime = response.WorkingTime;\r\n\r\n if (Mode != 1) inFromEventReport.AdvanceEventDate = inFromEventReport.AdvanceEventDate;\r\n setFromEventReport({ ...inFromEventReport });\r\n }\r\n } else {\r\n if (formProps) {\r\n formProps.setFieldValue(\"SecurityLevel\", \"\")\r\n formProps.setFieldValue(\"CheckTimeEnd\", false)\r\n formProps.setFieldValue(\"Description\", \"\")\r\n formProps.setFieldValue(\"EventTimeEnd\", \"\")\r\n formProps.setFieldValue(\"EventTimeStrat\", \"\")\r\n formProps.setFieldValue(\"EventType\", \"\")\r\n formProps.setFieldValue(\"SecurityDescription\", \"\")\r\n // formProps.setFieldValue(\"WorkingTime\", [])\r\n formProps.setFieldValue(\"SubEventType\", \"\")\r\n if (Mode != 1) formProps.setFieldValue(\"AdvanceEventDate\", inFromEventReport.AdvanceEventDate)\r\n } else {\r\n setFromEventReport({\r\n ...inFromEventReport,\r\n Area: Area,\r\n EventGroup: EventGroupSelect_,\r\n Company: CompanySelect_,\r\n CheckTimeEnd: false,\r\n Description: \"\",\r\n EventTimeEnd: \"\",\r\n EventTimeStrat: \"\",\r\n EventType: \"\",\r\n SecurityDescription: \"\",\r\n SecurityLevel: \"\",\r\n SubEventType: \"\"\r\n });\r\n }\r\n }\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n } else {\r\n if (formProps) {\r\n formProps.setFieldValue(\"SecurityLevel\", \"\")\r\n formProps.setFieldValue(\"CheckTimeEnd\", false)\r\n formProps.setFieldValue(\"Description\", \"\")\r\n formProps.setFieldValue(\"EventTimeEnd\", \"\")\r\n formProps.setFieldValue(\"EventTimeStrat\", \"\")\r\n formProps.setFieldValue(\"EventType\", \"\")\r\n formProps.setFieldValue(\"SecurityDescription\", \"\")\r\n // formProps.setFieldValue(\"WorkingTime\", [])\r\n formProps.setFieldValue(\"SubEventType\", \"\")\r\n } else {\r\n setFromEventReport({\r\n ...inFromEventReport,\r\n Area: Area,\r\n EventGroup: EventGroupSelect_,\r\n Company: CompanySelect_,\r\n CheckTimeEnd: false,\r\n Description: \"\",\r\n EventTimeEnd: \"\",\r\n EventTimeStrat: \"\",\r\n EventType: \"\",\r\n SecurityDescription: \"\",\r\n SecurityLevel: \"\",\r\n SubEventType: \"\",\r\n });\r\n }\r\n // if (formProps != null) {\r\n // WorkingTimeData(Area, [], formProps);\r\n // }\r\n }\r\n }\r\n //#endregion\r\n const setEventType = async (Area: any[], Company, GroupID, EvDate_: Date, lstEventTypeMaster_, formProps, nMode?) => {\r\n let lID = new LINQ(Area).Select(s => (+s)).ToList();\r\n let EvDate: Date = EvDate_;\r\n if (typeof (EvDate_) == \"string\") {\r\n EvDate = new Date(EvDate_);\r\n }\r\n let re = \"\";\r\n let neDate = new Date();\r\n if (EvDate > neDate) {\r\n re = \"1\";\r\n } else {\r\n re = \"2\"\r\n }\r\n if (EvDate == null) EvDate = new Date();\r\n let result = new LINQ(lstEventTypeMaster.length > 0 ? lstEventTypeMaster : lstEventTypeMaster_)\r\n .Where(w => lID.Contains(w.nUseAreaID)\r\n && w.nCompany === (+Company)\r\n && (Area.length > 1 ? w.nEventColor === 3 : true)\r\n && (re == \"1\" ? w.cAdvanceReport === \"Y\" : true)).ToList();\r\n let lstEv = new LINQ([]).ToList();\r\n let lstArea_ = result.Select(s => s.nAreaID).Distinct().ToList();\r\n let IsFirst = true;\r\n\r\n\r\n\r\n lstArea_.ForEach(f => {\r\n var lstEv_ = result.Where(w => w.nAreaID == f).Select(s => s.nEventTypeID).ToList();\r\n if (IsFirst) {\r\n lstEv = lstEv_;\r\n IsFirst = false;\r\n }\r\n else {\r\n if (lstEv.Any()) {\r\n lstEv = lstEv.Intersect(lstEv_).ToList();\r\n }\r\n else {\r\n let stData_ = result.Where(w => lstEv.Contains(w.nEventTypeID)).OrderBy(o => o.nOrder).Select(s => ({ label: s.sEventName, value: (s.nEventTypeID + \"\"), sRemark: s.sRemark, nEventColor: s.nEventColor })).Distinct().ToArray()\r\n setlstEventType(stData_);\r\n return;\r\n }\r\n }\r\n });\r\n let stData = result.Where(w => lstEv.Contains(w.nEventTypeID)).OrderBy(o => o.nOrderID).Select(s => ({ label: s.sEventName, value: (s.nEventTypeID + \"\"), sRemark: s.sRemark, nEventColor: s.nEventColor })).Distinct().ToArray()\r\n setlstEventType(stData);\r\n\r\n if (re === \"1\") {\r\n var sde = new LINQ(lstEventTypeMaster_Sub).Where(w => w.cAdvanceReport === \"Y\").ToArray();\r\n setlstSubEventType([...sde]);\r\n if (nMode === 1 || nMode == 2) {\r\n let qbj = {\r\n \"lstAreaID\": lID.ToArray(),\r\n \"sDate\": dateFormat(EvDate, \"dd/mm/yyyy\"),\r\n };\r\n\r\n await AxiosPost(sController + \"/CheckAreaAdvance\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n if (response.sStatus === \"NO\") {\r\n if (response.sMsg != null && response.sMsg != \"\") {\r\n setOpenLe({ ...openLe, Remark: true, sNote: response.sMsg });\r\n setEventType(Area, Company, GroupID, new Date(), lstEventTypeMaster_, formProps, null);\r\n setlstSubEventType([...lstEventTypeMaster_Sub]);\r\n if (formProps != null) {\r\n if (cAdvanceReport == false) {\r\n formProps.setFieldValue(\"EventDate\", new Date());\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n } else {\r\n setlstSubEventType([...lstEventTypeMaster_Sub]);\r\n }\r\n };\r\n\r\n const EventTypeControl = (Props) => {\r\n const { formProps } = Props;\r\n return (\r\n { formProps.setFieldValue(\"SubEventType\", \"\") }} />\r\n );\r\n };\r\n\r\n //จะแสดงเฉพาะ security \r\n const SubEventTypeControl = (Props) => {\r\n const { formProps } = Props;\r\n return (\r\n (lstSubEventType).Where(w => w.nHearID === (+formProps.values.EventType))\r\n .OrderBy(o => o.nOrderID).Select(s => ({ label: s.sEventName, value: (s.nEventTypeID + \"\"), sRemark: s.sRemark, nEventColor: s.nEventColor }))\r\n .Distinct().ToArray()\r\n }\r\n />\r\n );\r\n };\r\n\r\n const RemarkEventType = (Props) => {\r\n const { formProps } = Props;\r\n let Node = \"\";\r\n\r\n if (formProps.values.SubEventType != \"\") {\r\n let q = new LINQ(lstEventTypeMaster_Sub).Where(f => f.nEventTypeID === +formProps.values.SubEventType).FirstOrDefault();\r\n Node = q != undefined && q.sRemark;\r\n let isSh = q != undefined && q.nEventColor;\r\n // setisShoweTime(isSh === 3 ? false : true);\r\n } else {\r\n let q = new LINQ(lstEventType).Where(f => f.value === formProps.values.EventType).FirstOrDefault();\r\n Node = q != undefined && q.sRemark;\r\n let isSh = q != undefined && q.nEventColor;\r\n setisShoweTime(isSh === 3 ? false : true);\r\n }\r\n\r\n\r\n return (\r\n \r\n {Node != \"\" && }\r\n \r\n )\r\n };\r\n\r\n const WorkingTimeData = useCallback((Area, lstWorkingTimeMaster_, formProps?) => {\r\n let AreaID = new LINQ(Area).Select(s => (+s)).ToList();\r\n let lstData = new LINQ(lstWorkingTimeMaster.length > 0 ? lstWorkingTimeMaster : lstWorkingTimeMaster_).Where(w => AreaID.Contains(w.nAreaID)).ToArray();\r\n let result: any[] = [];\r\n if (lstData != null) {\r\n\r\n let tv = new LINQ(lstData).Select(g => g.nWorkingTimeID).Distinct().ToArray();\r\n tv.forEach(f => {\r\n let WID = f;\r\n let WName = \"\";\r\n let comment = \"\";\r\n let q = new LINQ(lstData).Where(w => w.nWorkingTimeID === f).FirstOrDefault();\r\n if (q != null) {\r\n WName = q.sWorKingTileName;\r\n }\r\n let lsrA = new LINQ(lstData).Where(w => w.nWorkingTimeID === f).Select(s => s.sAreaName).ToArray();\r\n comment = lsrA.join(\"
\");\r\n result.push({ id: (WID + \"\"), label: WName, comment: comment });\r\n });\r\n }\r\n if (formProps != null) {\r\n // if (formProps.values.Company === \"4\") {\r\n formProps.setFieldValue(\"WorkingTime\", new LINQ(result).Select(w => w.id).Distinct().ToArray());\r\n // }\r\n }\r\n setlstWorkingTime([...result]);\r\n }, [EventGroupSelect])\r\n\r\n //จะแสดงเฉพาะ operation\r\n const WorkingTimeControl = (Props) => {\r\n const { formProps } = Props;\r\n return (\r\n \r\n );\r\n };\r\n\r\n const DescriptionControl = (Props) => {\r\n const { formProps } = Props;\r\n return (\r\n \r\n );\r\n };\r\n const SecurityControl = (Props) => {\r\n const { formProps } = Props;\r\n return (\r\n \r\n { checkLevel(data, formProps) }}\r\n />\r\n \r\n \r\n );\r\n };\r\n\r\n const deleteEvent = (EventID) => {\r\n DialogConfirmDelete(() => {\r\n let qbj = {\r\n nEventReportID: +EventID\r\n };\r\n AxiosPost(sController + \"/DeleteEvent\", qbj, (response) => {\r\n ResultDeleteAPI(false, response, null, () => {\r\n loadListEventReport(EventGroupSelect, CompanySelect, EventDataSelect, [], false);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n };\r\n\r\n const [open, setOpen] = React.useState({ isShow: false, EventID: null, Mode: \"\" });\r\n\r\n const handleClose = (value: string) => {\r\n setOpen({ ...open, isShow: false, EventID: null, Mode: \"\" });\r\n if ((+value) === 1) {\r\n loadListEventReport(EventGroupSelect, CompanySelect, EventDataSelect, [], false);\r\n }\r\n };\r\n\r\n const handleShew = (EventID, Mode) => {\r\n setOpen({ ...open, isShow: true, EventID: EventID, Mode: Mode });\r\n };\r\n const EventApproveReport = React.useCallback(() => {\r\n return { handleClose(e) }}\r\n title={\"Edit Data\"}\r\n eventID={open.EventID}\r\n Mode={open.Mode} />\r\n }, [open]);\r\n\r\n const TableEventReportControl = useCallback(() => {\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 {(+EventGroupSelect) === 3 && }\r\n {(+EventGroupSelect) === 3 && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {lstEventReport.map((item, index) => {\r\n return (\r\n \r\n \r\n \r\n {(+EventGroupSelect) === 3 && }\r\n {(+EventGroupSelect) === 3 && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n
CompanyArea/Sub AreaSecurity StatusSecurity LevelStatusEvent TypeDescriptionUpdated ByReporting DateReporting Status
{item.sCompanyName}{item.sAreaName}{item.sSecurityLevelName}{item.sEventTypeName}{item.sDescription}{item.sReportby}{dateFormat(item.dCreateDate, \"dd/mm/yyyy HH:MM\")}{item.sStatusName}\r\n {isEdite === false &&\r\n \r\n \r\n
\r\n {item.isDelete && }\r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }, [lstEventReport, isEdite]);\r\n\r\n const [openLe, setOpenLe] = React.useState({ Remark: false, sNote: \"\" });\r\n\r\n const handleCloseLe = (value: string) => {\r\n setOpenLe({ ...openLe, Remark: false, sNote: \"\" });\r\n };\r\n const checkLevel = (nSecurityLevelID, formProps) => {\r\n let qbj = {\r\n nEventGroupID: null,\r\n nCompanyID: null,\r\n lstAreaID: new LINQ(formProps.values.Area).Select(s => (+s)).ToArray(),\r\n lstSubAreaID: [],\r\n sEventDate: dateFormat(formProps.values.EventDate, \"dd/mm/yyyy\"),\r\n nEventTypeID: null,\r\n nSecurityLevelID: +nSecurityLevelID\r\n };\r\n AxiosPost(sController + \"/CheclSecurityLevel\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n if (response.isPass == false) {\r\n setSecurityLevelPass(false);\r\n if (response.sMsg != null && response.sMsg != \"\") {\r\n setOpenLe({ ...openLe, Remark: true, sNote: response.sMsg });\r\n formProps.setFieldValue(\"SecurityLevel\", \"\")\r\n } else {\r\n setOpenLe({ ...openLe, Remark: true, sNote: \"เนื่องจากมีการปรับเปลี่ยนระดับ Security Level โปรดระบุเหตุผลของการปรับระดับการเตือนภัย\" });\r\n }\r\n } else {\r\n setSecurityLevelPass(true);\r\n }\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n const ColEventDate = useCallback((Props) => {\r\n const { formProps } = Props;\r\n return (\r\n cAdvanceReport ? {\r\n setEventType(formProps.values.Area, formProps.values.Company, formProps.values.EventGroup, formProps.values.AdvanceEventDate[1], [], formProps, 1);\r\n }}\r\n onChangedCallback={(value) => {\r\n setEventDataSelect(formProps.values.AdvanceEventDate[0]);\r\n GetEventPrevious(formProps.values.EventGroup + \"\", formProps.values.Company + \"\", formProps.values.AdvanceEventDate[0], formProps.values.Area, formProps, 1)\r\n loadListEventReport(formProps.values.EventGroup + \"\", formProps.values.Company + \"\", formProps.values.AdvanceEventDate[0], formProps.values.Area, false);\r\n }}\r\n endAdornment={\r\n \r\n \r\n \r\n } disable={isEdite}\r\n >\r\n : {\r\n setEventDataSelect(value);\r\n setEventType(formProps.values.Area, formProps.values.Company, formProps.values.EventGroup, value, lstEventTypeMaster, formProps);\r\n loadListEventReport(formProps.values.EventGroup + \"\", formProps.values.Company + \"\", value, formProps.values.Area, false);\r\n\r\n }}\r\n onCloseCallback={(e) => {\r\n setEventType(formProps.values.Area, formProps.values.Company, formProps.values.EventGroup, formProps.values.EventDate, lstEventTypeMaster, formProps, 1);\r\n GetEventPrevious(formProps.values.EventGroup + \"\", formProps.values.Company + \"\", formProps.values.EventDate, formProps.values.Area, formProps)\r\n }}\r\n endAdornment={\r\n \r\n \r\n \r\n } disable={isEdite} />\r\n\r\n );\r\n }, [cAdvanceReport, maxDateEv, isEdite, lstEventTypeMaster, lstEventTypeMaster_Sub]);\r\n const ColCheckEventDate = useCallback((Props) => {\r\n const { formProps } = Props;\r\n return (ShowAdvanceReport ? {\r\n setcAdvanceReport(e)\r\n if (e == false) {\r\n setEventDataSelect(formProps.values.EventDate)\r\n setEventType(formProps.values.Area, formProps.values.Company, formProps.values.EventGroup, formProps.values.EventDate, lstEventTypeMaster, formProps, 1);\r\n\r\n // GetEventPrevious(formProps.values.EventGroup + \"\", formProps.values.Company + \"\", formProps.values.EventDate, formProps.values.Area, formProps)\r\n loadListEventReport(formProps.values.EventGroup + \"\", formProps.values.Company + \"\", formProps.values.EventDate, formProps.values.Area, true);\r\n } else {\r\n formProps.setFieldValue(\"AdvanceEventDate\", resultGetAdvanceReport)\r\n if ((formProps.values.AdvanceEventDate || []).length > 0) {\r\n setEventDataSelect((resultGetAdvanceReport || []).length > 1 ? resultGetAdvanceReport[1] : formProps.values.EventDate)\r\n if ((resultGetAdvanceReport || []).length >= 2) {\r\n setEventType(formProps.values.Area, formProps.values.Company, formProps.values.EventGroup, resultGetAdvanceReport[1], lstEventTypeMaster, formProps, 1);\r\n }\r\n loadListEventReport(formProps.values.EventGroup + \"\", formProps.values.Company + \"\", (resultGetAdvanceReport || []).length > 1 ? resultGetAdvanceReport[0] : formProps.values.EventDate, formProps.values.Area, false);\r\n }\r\n }\r\n }} /> : )\r\n }, [ShowAdvanceReport, lstEventTypeMaster, resultGetAdvanceReport]);\r\n return (\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {/* mt-4 ml-4 */}\r\n \r\n \r\n \r\n \r\n
\r\n
EVENT FORM แบบฟอร์มรายงานเหตุการณ์
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n {(formProps) => {\r\n return (\r\n
\r\n \r\n \r\n\r\n {\r\n GetAdvanceReport(data, formProps)\r\n setEventGroupSelect(data);\r\n if ((+data) === 1) {\r\n formProps.values.Company = lstCompyneCSR[0].value;\r\n setCompanySelect(lstCompyneCSR[0].value);\r\n } else {\r\n formProps.values.Company = lstCompany[0].value;\r\n setCompanySelect(lstCompany[0].value);\r\n }\r\n formProps.values.EventType = \"\";\r\n formProps.values.SubEventType = \"\";\r\n\r\n formProps.values.Area = new LINQ(lstArea)\r\n .Where(w => w.nEventGrupID === (+data) && w.nCompanyID === (+formProps.values.Company))\r\n .Select(s => (s.nAreaID + \"\")).ToArray();\r\n WorkingTimeData(formProps.values.Area, [], formProps);\r\n setEventType(formProps.values.Area, formProps.values.Company, data, formProps.values.EventDate, null, formProps);\r\n loadListEventReport(data + \"\", formProps.values.Company + \"\", formProps.values.EventDate, formProps.values.Area, true, formProps);\r\n\r\n }}\r\n />\r\n\r\n {\r\n setCompanySelect(data);\r\n formProps.values.Area = new LINQ(lstArea)\r\n .Where(w => w.nEventGrupID === (+formProps.values.EventGroup) && w.nCompanyID === (+data))\r\n .Select(s => (s.nAreaID + \"\")).ToArray();\r\n setEventType(formProps.values.Area, data, formProps.values.EventGroup, formProps.values.EventDate, null, formProps);\r\n loadListEventReport(formProps.values.EventGroup + \"\", data + \"\", formProps.values.EventDate, formProps.values.Area, true);\r\n }} />\r\n\r\n {isEdite === false && < p style={{ fontSize: \"12px\", marginBottom: \"-8px\", color: \"#f10707\", textAlign: \"end\" }}>โปรดตรวจสอบพึ้นที่ที่ต้องการรายงาน

}\r\n\r\n (lstArea)\r\n .Where(w => w.nEventGrupID === (+formProps.values.EventGroup) && w.nCompanyID === (+formProps.values.Company))\r\n .OrderBy(o => o.nOrder).ThenBy(t => t.nSubOrder).Select(s => ({ label: s.sAreaName, value: (s.nAreaID + \"\") })).ToArray()\r\n }\r\n mode={\"multiple\"}\r\n onChangeMultiSelect={(fr, data) => {\r\n formProps.values.EventType = \"\";\r\n formProps.values.SubEventType = \"\";\r\n WorkingTimeData(new LINQ(data).Select(s => s.value).ToArray(), [], formProps);\r\n setEventType(new LINQ(data).Select(s => s.value).ToArray(),\r\n formProps.values.Company, formProps.values.EventGroup,\r\n (cAdvanceReport ? ((formProps.values.AdvanceEventDate || []).length >= 2 ? formProps.values.AdvanceEventDate[1] : formProps.values.EventDate)\r\n : formProps.values.EventDate), [], formProps, 2);\r\n formProps.values.EventGroup === \"3\" && formProps.setFieldValue(\"SecurityLevel\", \"\")\r\n GetEventPrevious(formProps.values.EventGroup + \"\", formProps.values.Company + \"\", formProps.values.EventDate, new LINQ(data).Select(s => s.value).ToArray(), formProps, 1)\r\n }}\r\n />\r\n \r\n\r\n \r\n\r\n {EventGroupSelect === \"2\" &&\r\n \r\n }\r\n {EventGroupSelect === \"3\" &&\r\n \r\n }\r\n
\r\n \r\n \r\n {new LINQ(lstEventTypeMaster_Sub).Where(w => w.nHearID === (+formProps.values.EventType)).ToArray().length > 0 && }\r\n \r\n {isShoweTime && \r\n \r\n ช่วงเวลาที่เกิดเหตุการณ์ผิดปกติ (Abnormal Time) *\r\n \r\n \r\n {\r\n if (formProps.values.EventDate < new Date()) {\r\n if (value > new Date()) {\r\n formProps.setFieldTouched(\"EventTimeStrat\", true, true);\r\n formProps.setFieldError(\"EventTimeStrat\", \"เหกกห\");\r\n formProps.validateField(\"EventTimeStrat\");\r\n }\r\n }\r\n }}\r\n name=\"EventTimeStrat\"\r\n label=\"Start Time\" />\r\n \r\n \r\n \r\n {/* */}\r\n {\r\n setCheckTimeEndSelect(e);\r\n // eventTimeEndControl(formProps,e)\r\n\r\n if (e) {\r\n formProps.setFieldValue(\"EventTimeEnd\", new Date(\"2020/01/11 08:00\"));\r\n } else {\r\n formProps.setFieldValue(\"EventTimeEnd\", null);\r\n }\r\n }} />\r\n\r\n \r\n }\r\n \r\n {\r\n setFileData_(e);;\r\n }}\r\n isClearFile={isClearFile}\r\n ResultClearFile={() => setisClearFile(false)}\r\n />\r\n \r\n \r\n \r\n Submit\r\n { resetFrom(formProps.setFieldValue, formProps.setFieldError, \"Save\") }}\r\n >Cancel\r\n \r\n \r\n
\r\n
\r\n )\r\n }}\r\n \r\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 CreateReport;\r\n","import React, { Fragment, useState, useEffect } from 'react';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\nimport { Grid } from '@material-ui/core';\r\nimport { EditorState, convertFromRaw, convertToRaw, ContentState, convertFromHTML } from 'draft-js';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\nimport { AxiosPost, DialogConfirm, FnBlock_UI, ResultAPI, scrollToElementValidate } from 'components/SysComponent/SystemComponent';\r\nimport { MuiButtonSaveFront } from 'components/SysComponent/MaterialComponent';\r\nimport Accordion from '@material-ui/core/Accordion/Accordion';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary/AccordionSummary';\r\n// Require Editor CSS files.\r\nimport \"froala-editor/js/froala_editor.pkgd.min.js\";\r\nimport \"froala-editor/js/plugins.pkgd.min.js\";\r\n\r\nimport 'froala-editor/css/froala_style.min.css';\r\nimport 'froala-editor/css/froala_editor.pkgd.min.css';\r\n\r\nimport \"froala-editor/css/plugins/quick_insert.min.css\";\r\nimport \"froala-editor/css/plugins/char_counter.min.css\";\r\nimport \"froala-editor/css/plugins/code_view.min.css\";\r\nimport \"froala-editor/css/plugins/colors.min.css\";\r\nimport \"froala-editor/css/plugins/draggable.min.css\";\r\nimport \"froala-editor/css/plugins/emoticons.min.css\";\r\nimport \"froala-editor/css/plugins/file.min.css\";\r\nimport \"froala-editor/css/plugins/fullscreen.min.css\";\r\nimport \"froala-editor/css/plugins/help.min.css\";\r\nimport \"froala-editor/css/plugins/image_manager.min.css\";\r\nimport \"froala-editor/css/plugins/image.min.css\";\r\nimport \"froala-editor/css/plugins/line_breaker.min.css\";\r\nimport \"froala-editor/css/plugins/quick_insert.min.css\";\r\nimport \"froala-editor/css/plugins/special_characters.min.css\";\r\nimport \"froala-editor/css/plugins/table.min.css\";\r\nimport \"froala-editor/css/plugins/video.min.css\";\r\n\r\nimport FroalaEditor from 'react-froala-wysiwyg';\r\n\r\n\r\nconst config = {\r\n key: \"0BA3jA11B5C7C4A4D3aIVLEABVAYFKc2Cb1MYGH1g1NYVMiG5G4E3C3A1C8A6D4A3B4==\",\r\n charCounterCount: false,\r\n toolbarButtons: {\r\n moreText: {\r\n buttons: ['bold', 'italic', 'underline', 'strikeThrough', 'subscript', 'superscript', 'fontFamily', 'fontSize', 'textColor', 'backgroundColor', 'inlineClass', 'inlineStyle', 'clearFormatting']\r\n },\r\n moreParagraph: {\r\n buttons: ['alignLeft', 'alignCenter', 'formatOLSimple', 'alignRight', 'alignJustify', 'formatOL', 'formatUL', 'paragraphFormat', 'paragraphStyle', 'lineHeight', 'outdent', 'indent', 'quote']\r\n },\r\n moreRich: {\r\n buttons: ['insertLink', 'insertImage', 'insertVideo', 'insertTable', 'emoticons', 'fontAwesome', 'specialCharacters', 'embedly', 'insertFile', 'insertHR']\r\n },\r\n moreMisc: {\r\n buttons: ['undo', 'redo', 'fullscreen', 'print', 'spellChecker', 'selectAll', 'html', 'help'],\r\n align: 'right',\r\n buttonsVisible: 2\r\n }\r\n },\r\n // Set the image upload parameter.\r\n imageUploadParam: 'image_param',\r\n // Set the image upload URL.\r\n imageUploadURL: 'api/UploadFile/UploadFileCotactUs',\r\n // Additional upload params.\r\n imageUploadParams: { id: 'my_editor' },\r\n // Set request type.\r\n imageUploadMethod: 'POST',\r\n // Set max image size to 5MB.\r\n imageMaxSize: 5 * 1024 * 1024,\r\n // imageAllowedTypes: ['jpeg', 'jpg', 'png'],\r\n fileUploadParam: 'file_param',\r\n fileUploadURL: 'api/UploadFile/UploadFileCotactUs',\r\n fileUploadParams: { id: 'my_editor' },\r\n fileUploadMethod: 'POST',\r\n fileMaxSize: 20 * 1024 * 1024,\r\n fileAllowedTypes: ['*'],\r\n videoUploadParam: 'file_name',\r\n videoUploadURL: 'api/UploadFile/UploadFileCotactUs',\r\n videoUploadParams: { id: 'my_editor' },\r\n videoUploadMethod: 'POST',\r\n}\r\n\r\nconst ContactUs = () => {\r\n const sController = \"ContactUs\";\r\n const fnInitialData = {\r\n nID: null,\r\n txtEdittor: '',\r\n editorState: EditorState.createEmpty()\r\n }\r\n\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n // #region set State\r\n const [editorState, setEditorState] = useState(EditorState.createEmpty());\r\n const [EditID, setEditID] = useState(0);\r\n const [sContactUs, setContactUs] = useState(\"\");\r\n const [isCorparate, setCorparate] = useState(false);\r\n // #endregion set State\r\n const onSave = () => {\r\n setEditorState(editorState);\r\n let obj = {\r\n nID: EditID,\r\n sContactUs: sContactUs\r\n }\r\n DialogConfirm(() => {\r\n AxiosPost(sController + \"/SaveData\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n LoadData();\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n }\r\n\r\n const LoadData = () => {\r\n let obj = {\r\n // nID: null,\r\n sContactUs: \"\"\r\n }\r\n AxiosPost(sController + \"/LoadData\", obj, (res) => {\r\n ResultAPI(false, res, null, () => {\r\n setEditID(res.nID);\r\n setContactUs(res.sContactUs);\r\n setCorparate(res.isCorparate)\r\n })\r\n })\r\n }\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
Contact US
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n { setContactUs(e) }}\r\n />\r\n \r\n \r\n {isCorparate === true ?\r\n Save : \"\"\r\n }\r\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 ContactUs;\r\n","import React, { Fragment, useState } from 'react';\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport { EventColorCompronent, MuiButtonApproveFront, MuiButtonEditeFront } from '../../SysComponent/MaterialComponent'\r\nimport { FnBlock_UI, ParseHtml } from '../../SysComponent/SystemComponent';\r\nimport {\r\n useStyles, StyledTable_Front, StyledTableCell_Front, StyledTableRow_Front, StyledTableHead_Front, Order,\r\n PerPageOptions, StyledTableBody_Front, stableSort, getComparator, HeadCell, defaultPage\r\n} from '../../form/Table/CustomTable';\r\nimport {\r\n Paper, TableContainer, TableSortLabel, TablePagination,Button\r\n} from '@material-ui/core';\r\nconst dateFormat = require('dateformat');\r\nconst EventTodayOperation = (props) => {\r\n const { data, onApprove, expanded, handleChange } = props;\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [lstEventOperation, setlstEventOperation] = useState(data as any[]);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(defaultPage);\r\n const [order, setOrder] = React.useState('desc');\r\n const [orderBy, setOrderBy] = React.useState('dCreateDate');\r\n\r\n const handleChange_brac = (panel) => (event, newExpanded) => {\r\n handleChange(newExpanded ? panel : 0);\r\n };\r\n\r\n\r\n //#region set Pagination\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n data.length > 0 ?\r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n const headCells: HeadCell[] = [\r\n { id: 'sCompanyName', numeric: true, disablePadding: true, label: 'Company', width: 10, isSort: true },\r\n { id: 'sAreaName', numeric: false, disablePadding: true, label: 'Area/
Sub Area', width: 10, isSort: true },\r\n { id: 'nEventColorID', numeric: false, disablePadding: true, label: 'Status', width: 2, isSort: false },\r\n { id: 'sEventTypeName', numeric: false, disablePadding: false, label: 'Event Type', width: 15, isSort: true },\r\n { id: 'sDescription', numeric: true, disablePadding: false, label: 'Description', width: 17, isSort: true },\r\n { id: 'sReportby', numeric: true, disablePadding: false, label: ' Reporter', width: 10, isSort: true },\r\n { id: 'dCreateDate', numeric: true, disablePadding: false, label: 'Reporting Date', width: 8, isSort: true },\r\n { id: 'sStatusName', numeric: true, disablePadding: false, label: 'Reporting Status', width: 10, isSort: true },\r\n { id: 'isApprover', numeric: true, disablePadding: false, label: '', width: 2, isSort: false },\r\n ];\r\n\r\n return (\r\n \r\n \r\n }\r\n >\r\n
Operation [{lstEventOperation.length}]
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {ParseHtml(headCell.label)}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : ParseHtml(headCell.label)\r\n }\r\n \r\n ))}\r\n \r\n \r\n \r\n {lstEventOperation.length > 0 ?\r\n stableSort(lstEventOperation, getComparator(order, orderBy)).slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((item, index) => {\r\n return (\r\n \r\n {item.sCompanyName}\r\n {item.sAreaName}\r\n \r\n \r\n {\r\n onApprove(item.nEventReportID, \"View\");\r\n }}\r\n style={{ textTransform: \"none\", textAlign: \"left\", verticalAlign: \"top\", padding: \"0px\" }}>\r\n {item.sEventTypeName}\r\n \r\n \r\n {item.sDescription}\r\n {item.sReportby}\r\n {dateFormat(item.dCreateDate, \"dd/mm/yyyy HH:MM\")}\r\n {item.sStatusName}\r\n \r\n {item.isEdite && { onApprove(item.nEventReportID, \"Edite\") }} >Edit}\r\n {item.isApprover && { onApprove(item.nEventReportID, \"Approve\") }}>Approve}\r\n \r\n \r\n )\r\n })\r\n :\r\n \r\n No Data\r\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 EventTodayOperation;","import React, { Fragment, useState } from 'react';\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport { EventColorCompronent, SecurityLevelColorCompronent, MuiButtonApproveFront, MuiButtonEditeFront } from '../../SysComponent/MaterialComponent'\r\nimport { FnBlock_UI, ParseHtml } from '../../SysComponent/SystemComponent';\r\nimport {\r\n useStyles, StyledTable_Front, StyledTableCell_Front, StyledTableRow_Front, StyledTableHead_Front, Order,\r\n PerPageOptions, StyledTableBody_Front, stableSort, getComparator, HeadCell, defaultPage\r\n} from '../../form/Table/CustomTable';\r\nimport { Paper, TableContainer, TableSortLabel, TablePagination,Button } from '@material-ui/core';\r\nconst dateFormat = require('dateformat');;\r\nconst EventTodaySecurity = (props) => {\r\n const { data, onApprove, expanded, handleChange } = props;\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [lstEventSecurity, setlstEventSecurity] = useState(data || [] as any[]);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(defaultPage);\r\n const [order, setOrder] = React.useState('desc');\r\n const [orderBy, setOrderBy] = React.useState('dCreateDate');\r\n const handleChange_brac = (panel) => (event, newExpanded) => {\r\n handleChange(newExpanded ? panel : 0);\r\n };\r\n\r\n\r\n\r\n //#region set Pagination\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n data.length > 0 ?\r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n const headCells: HeadCell[] = [\r\n { id: 'sCompanyName', numeric: true, disablePadding: true, label: 'Company', width: 10, isSort: true },\r\n { id: 'sAreaName', numeric: false, disablePadding: true, label: 'Area/
Sub Area', width: 15, isSort: true },\r\n { id: 'sSecurityLevelColor', numeric: false, disablePadding: true, label: 'Security Status', width: 2, isSort: false },\r\n { id: 'sSecurityLevelName', numeric: false, disablePadding: false, label: 'Security Level', width: 15, isSort: true },\r\n { id: 'nEventColorID', numeric: false, disablePadding: true, label: 'Status', width: 2, isSort: false },\r\n { id: 'sEventTypeName', numeric: false, disablePadding: false, label: 'Event Type', width: 15, isSort: true },\r\n { id: 'sDescription', numeric: true, disablePadding: false, label: 'Description', width: 15, isSort: true },\r\n { id: 'sReportby', numeric: true, disablePadding: false, label: ' Reporter', width: 10, isSort: true },\r\n { id: 'dCreateDate', numeric: true, disablePadding: false, label: 'Reporting Date', width: 8, isSort: true },\r\n { id: 'sStatusName', numeric: true, disablePadding: false, label: 'Reporting Status', width: 10, isSort: true },\r\n { id: 'isApprover', numeric: true, disablePadding: false, label: '', width: 2, isSort: false },\r\n ];\r\n\r\n return (\r\n \r\n \r\n }\r\n\r\n >\r\n
Security [{lstEventSecurity.length}]
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {ParseHtml(headCell.label)}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : ParseHtml(headCell.label)\r\n }\r\n \r\n ))}\r\n \r\n \r\n \r\n {lstEventSecurity.length > 0 ?\r\n stableSort(lstEventSecurity, getComparator(order, orderBy)).slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((item, index) => {\r\n return (\r\n \r\n {item.sCompanyName}\r\n {item.sAreaName}\r\n \r\n {item.sSecurityLevelName}\r\n \r\n \r\n {\r\n onApprove(item.nEventReportID, \"View\");\r\n }}\r\n style={{ textTransform: \"none\", textAlign: \"left\", verticalAlign: \"top\", padding: \"0px\" }}>\r\n {item.sEventTypeName}\r\n \r\n \r\n {item.sDescription}\r\n {item.sReportby}\r\n {dateFormat(item.dCreateDate, \"dd/mm/yyyy HH:MM\")}\r\n {item.sStatusName}\r\n \r\n {item.isEdite && { onApprove(item.nEventReportID, \"Edite\") }} >Edit}\r\n {item.isApprover && { onApprove(item.nEventReportID, \"Approve\") }}>Approve}\r\n\r\n \r\n \r\n )\r\n })\r\n :\r\n \r\n No Data\r\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 EventTodaySecurity;","import React, { Fragment, useState } from 'react';\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport { EventColorCompronent, MuiButtonApproveFront, MuiButtonEditeFront } from '../../SysComponent/MaterialComponent'\r\nimport { FnBlock_UI, ParseHtml } from '../../SysComponent/SystemComponent';\r\nimport {\r\n useStyles, StyledTable_Front, StyledTableCell_Front, StyledTableRow_Front, StyledTableHead_Front, Order,\r\n PerPageOptions, StyledTableBody_Front, stableSort, getComparator, HeadCell, defaultPage\r\n} from '../../form/Table/CustomTable';\r\nimport { Paper, TableContainer, TableSortLabel, TablePagination,Button } from '@material-ui/core';\r\nconst dateFormat = require('dateformat');\r\nconst EventTodayCSR = (props) => {\r\n const { data, onApprove, expanded, handleChange } = props;\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [lstEventCSR, setlstEventCSR] = useState(data || [] as any[]);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(defaultPage);\r\n const [order, setOrder] = React.useState('desc');\r\n const [orderBy, setOrderBy] = React.useState('dCreateDate');\r\n const handleChange_brac = (panel) => (event, newExpanded) => {\r\n handleChange(newExpanded ? panel : 0);\r\n };\r\n\r\n\r\n //#region set Pagination\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n data.length > 0 ?\r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n const headCells: HeadCell[] = [\r\n { id: 'sCompanyName', numeric: true, disablePadding: true, label: 'Company', width: 10, isSort: true },\r\n { id: 'sAreaName', numeric: false, disablePadding: true, label: 'Area/
Sub Area', width: 15, isSort: true },\r\n { id: 'nEventColorID', numeric: false, disablePadding: true, label: 'Status', width: 2, isSort: false },\r\n { id: 'sEventTypeName', numeric: false, disablePadding: false, label: 'Event Type', width: 15, isSort: true },\r\n { id: 'sDescription', numeric: true, disablePadding: false, label: 'Description', width: 17, isSort: true },\r\n { id: 'sReportby', numeric: true, disablePadding: false, label: 'Reporter', width: 10, isSort: true },\r\n { id: 'dCreateDate', numeric: true, disablePadding: false, label: 'Reporting Date', width: 8, isSort: true },\r\n { id: 'sStatusName', numeric: true, disablePadding: false, label: 'Reporting Status', width: 10, isSort: true },\r\n { id: 'isApprover', numeric: true, disablePadding: false, label: '', width: 2, isSort: false },\r\n ];\r\n return (\r\n \r\n \r\n }\r\n >\r\n
CSR [{lstEventCSR.length}]
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {ParseHtml(headCell.label)}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : ParseHtml(headCell.label)\r\n }\r\n \r\n ))}\r\n \r\n \r\n \r\n {lstEventCSR.length > 0 ?\r\n stableSort(lstEventCSR, getComparator(order, orderBy)).slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((item, index) => {\r\n return (\r\n \r\n {item.sCompanyName}\r\n {item.sAreaName}\r\n \r\n \r\n {\r\n onApprove(item.nEventReportID, \"View\");\r\n }}\r\n style={{ textTransform: \"none\", textAlign: \"left\", verticalAlign: \"top\", padding: \"0px\" }}>\r\n {item.sEventTypeName}\r\n \r\n \r\n {item.sDescription}\r\n {item.sReportby}\r\n {dateFormat(item.dCreateDate, \"dd/mm/yyyy HH:MM\")}\r\n {item.sStatusName}\r\n \r\n {item.isEdite && { onApprove(item.nEventReportID, \"Edite\") }} >Edit}\r\n {item.isApprover && { onApprove(item.nEventReportID, \"Approve\") }}>Approve}\r\n \r\n \r\n )\r\n })\r\n :\r\n \r\n No Data\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 EventTodayCSR;","import React, { Fragment, useEffect, useState, useRef, useCallback } from 'react';\r\nimport { Grid, Card, FormControl, InputLabel, Select } from '@material-ui/core';\r\nimport EventTodayOperation from './EventTodayOperation'\r\nimport EventTodaySecurity from './EventTodaySecurity'\r\nimport EventTodayCSR from './EventTodayCSR'\r\nimport EventApprove from '../EventApprove'\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport { FnBlock_UI, AxiosPost, ResultAPI, DialogConfirmDelete, DialogConfirm, MsgValidate, ParseHtml, MsgValidateMaxLength, resetFromSubmitData } from '../../SysComponent/SystemComponent';\r\nconst sController = \"EventToday\";\r\nconst dateFormat = require('dateformat');;\r\nconst EventToday = () => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const [lstEventOperation, setlstEventOperation] = useState([] as any[]);\r\n const [lstEventCSR, setlstEventCSR] = useState([] as any[]);\r\n const [lstEventSecurity, setlstEventSecurity] = useState([] as any[]);\r\n const [dReportDate, setReport] = useState(new Date());\r\n const [open, setOpen] = React.useState({ isShow: false, EventID: null, Mode: \"\" });\r\n const [openTab, setopenTab] = useState(0);\r\n const [lstEventGroupID, setlstEventGroupID] = useState([] as any[]);\r\n const LoadData = () => {\r\n let obj = {\r\n 'nMode': 1\r\n };\r\n AxiosPost(sController + \"/LoadEventToday\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setReport(response.dReportDate);\r\n setlstEventOperation(response.lstEventOperation);\r\n setlstEventCSR(response.lstEventCSR);\r\n setlstEventSecurity(response.lstEventSecurity);\r\n setlstEventGroupID(response.lstEventGoupID);\r\n \r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n const EventTodayOperationUI = useCallback(() => {\r\n return { setopenTab(e) }}\r\n onApprove={(e, m) => {\r\n handleShew(e, m);\r\n setopenTab(1);\r\n }} />\r\n }, [lstEventOperation, openTab])\r\n\r\n const EventTodayCSRUI = useCallback(() => {\r\n return { setopenTab(e) }}\r\n onApprove={(e, m) => {\r\n handleShew(e, m);\r\n setopenTab(3);\r\n }} />\r\n }, [lstEventCSR, openTab])\r\n\r\n const EventTodaySecurityUI = useCallback(() => {\r\n return { setopenTab(e) }}\r\n onApprove={(e, m) => {\r\n handleShew(e, m);\r\n setopenTab(2);\r\n }} />\r\n }, [lstEventSecurity, openTab])\r\n\r\n const handleClose = (value: string) => {\r\n setOpen({ ...open, isShow: false, EventID: null, Mode: \"\" });\r\n if ((+value) === 1) {\r\n LoadData();\r\n }\r\n };\r\n\r\n const handleShew = (EventID, Mode) => {\r\n setOpen({ ...open, isShow: true, EventID: EventID, Mode: Mode });\r\n };\r\n\r\n const EventApproveReport = useCallback(() => {\r\n return { handleClose(e) }}\r\n title={\"Event Approve\"}\r\n eventID={open.EventID}\r\n Mode={open.Mode} />\r\n }, [open]);\r\n\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
EVENT TODAY รายงานเหตุการณ์ Report Date: {dateFormat(dReportDate, \"dd/mm/yyyy\")}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {lstEventGroupID.filter(f => f === 2).length > 0 && }\r\n {lstEventGroupID.filter(f => f === 3).length > 0 && }\r\n {lstEventGroupID.filter(f => f === 1).length > 0 && }\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\nexport default EventToday;","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport FormErrors from \"./formErrors\";\r\nimport { FastField, Field } from \"formik\";\r\nimport Select from \"react-select\";\r\nimport CreatableSelect from 'react-select/creatable';\r\nimport makeAnimated from 'react-select/animated';\r\nimport { i18n } from \"../../i18n\";\r\nimport {\r\n components as materialUiComponents,\r\n styles as materialUiStyles,\r\n} from \"./MaterialUI/reactSelectMaterialUi\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nconst animatedComponents = makeAnimated();\r\nconst controlStyles = {\r\n container: (provided, state) => ({\r\n ...provided,\r\n // width: \"100%\",\r\n // backgroundColor: state.isDisabled ? \"#ccc\" : \"#ffffff\",//rgba(0, 0, 0, 0.04)\r\n // // borderRadius: \"0\"\r\n // //marginTop: \"16px\",\r\n // //marginBottom: \"8px\",\r\n ...provided,\r\n width: \"100%\",\r\n marginTop: \"16px\",\r\n marginBottom: \"8px\",\r\n }),\r\n control: (provided) => ({\r\n ...provided,\r\n }),\r\n dropdownIndicator: base => ({\r\n ...base,\r\n cursor: \"pointer\",\r\n padding: \"6px\"\r\n }),\r\n indicatorsContainer: base => ({\r\n ...base,\r\n cursor: \"pointer\",\r\n // padding: \"6px\"\r\n }),\r\n menuPortal: base => ({\r\n ...base\r\n , zIndex: 1001\r\n })\r\n};\r\nexport class SelectNoForm extends Component {\r\n\r\n render() {\r\n const {\r\n label,\r\n placeholder,\r\n isClearable,\r\n defaultInputValue,\r\n menuPortalTarget,\r\n maxWidth,\r\n disable,\r\n } = this.props;\r\n return (\r\n i18n(\"autocomplete.noOptions\")}\r\n placeholder={placeholder || \"\"}\r\n isClearable={isClearable || false}\r\n isDisabled={disable || false}\r\n menuPortalTarget={menuPortalTarget ? undefined : document.body}\r\n />\r\n )\r\n }\r\n}\r\nexport default withStyles(materialUiStyles)(SelectNoForm);\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { TextField } from \"@material-ui/core\";\r\nimport { withStyles, Theme, createStyles, makeStyles } from '@material-ui/core/styles';\r\nimport { i18n } from '../../i18n';\r\n\r\nconst StyledInput = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n width: \"100%\",\r\n top: \"4px\",\r\n\r\n // '& .MuiOutlinedInput-root': {\r\n // '& fieldset': {\r\n // borderRadius: \"0px\",\r\n // },\r\n // fontSize: \"14px\",\r\n // color: \"rgba(0, 0, 0, 0.87)\"\r\n // },\r\n // background: theme.palette.common.white,\r\n // \"& .MuiInputBase-root.Mui-disabled\": {\r\n // background: theme.palette.action.hover,\r\n // },\r\n \"& .MuiOutlinedInput-inputMarginDense\": {\r\n // paddingTop: \"8px\",\r\n // paddingBottom: \"8px\"\r\n minHeight: \"24px\",\r\n },\r\n \"& .MuiInputLabel-outlined\": {\r\n top: 1,\r\n }\r\n // width: \"100%\"\r\n }\r\n }),\r\n)(TextField);\r\n\r\nexport const TextFieldInputFreeText = (props) => {\r\n const { defaultValue, maxLength } = props;\r\n const onBlured = (e) => {\r\n if (props.onBlur) {\r\n props.onBlur(e.target.value,e);\r\n }\r\n }\r\n return (\r\n { onBlured(e); }}\r\n />\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport FormErrors from \"./formErrors\";\r\nimport { FastField } from \"formik\";\r\nimport DateFnsUtils from \"@material-ui/pickers/adapter/date-fns\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport {\r\n MobileDateRangePicker,\r\n DateRangeDelimiter,\r\n LocalizationProvider,\r\n DateTimePicker,\r\n DatePicker,\r\n} from \"@material-ui/pickers\";\r\nimport DateRangeOutlinedIcon from '@material-ui/icons/DateRangeOutlined';\r\nimport InputAdornment from '@material-ui/core/InputAdornment/InputAdornment';\r\nimport { getLanguage } from \"../../i18n\";\r\nimport { i18n } from \"../../i18n\";\r\nimport { withStyles, Theme, createStyles, makeStyles } from '@material-ui/core/styles';\r\n\r\nconst StyledInput = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n width: \"100%\",\r\n top: \"4px\",\r\n\r\n // '& .MuiOutlinedInput-root': {\r\n // '& fieldset': {\r\n // borderRadius: \"0px\",\r\n // },\r\n // fontSize: \"14px\",\r\n // color: \"rgba(0, 0, 0, 0.87)\"\r\n // },\r\n // background: theme.palette.common.white,\r\n // \"& .MuiInputBase-root.Mui-disabled\": {\r\n // background: theme.palette.action.hover,\r\n // },\r\n \"& .MuiOutlinedInput-inputMarginDense\": {\r\n // paddingTop: \"8px\",\r\n // paddingBottom: \"8px\"\r\n minHeight: \"24px\",\r\n },\r\n \"& .MuiInputLabel-outlined\": {\r\n top: 1,\r\n }\r\n // width: \"100%\"\r\n }\r\n }),\r\n)(TextField);\r\n\r\nexport const DatePickerRangeNoForm = (props) => {\r\n const {\r\n label,\r\n name,\r\n hint,\r\n placeholder,\r\n autoFocus,\r\n autoComplete,\r\n inputProps,\r\n required,\r\n showTime,\r\n handleDateChange,\r\n defaultValue,\r\n } = props;\r\n const format = showTime ? \"dd/MM/yyyy HH:mm\" : \"dd/MM/yyyy\";\r\n const [selectDate, setselectDate] = React.useState(defaultValue || [null, null]); //this.value() || [null, null];\r\n\r\n const handleChangeValue = (date) => {\r\n setselectDate(date);\r\n };\r\n\r\n return (\r\n \r\n
\r\n {\r\n handleChangeValue(value);\r\n if (handleDateChange != undefined) handleDateChange(value);\r\n }}\r\n {...inputProps}\r\n autoOk={false}\r\n renderInput={(startProps, endProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n }} />\r\n {/* to */}\r\n
to
\r\n \r\n \r\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 DatePickerRangeNoForm;","import React, { Fragment, useEffect, useCallback, useRef } from 'react';\r\nimport { CardBody, Label, Table } from 'reactstrap';\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport { EventColorCompronent, MuiButtonDelete, MuiButtonSearch, MuiIconCheckBoxDelete, MuiButtonApproveFront, MuiButtonEditeFront, MuiButtonViewFront, MuiButtonExport } from '../../SysComponent/MaterialComponent'\r\nimport { Decrypt, FnBlock_UI, ResultAPI, AxiosPost, DialogConfirmDelete, ResultDeleteAPI, AxiosPostExportFile } from '../../SysComponent/SystemComponent';\r\nimport {\r\n useStyles, MuiTableTableToolbar, StyledTable_Front, StyledTableCell_Front, StyledTableRow_Front, StyledTableHead_Front, Order,\r\n PerPageOptions, StyledTableBody_Front, stableSort, getComparator, MuiRowNoData, HeadCell, defaultPage\r\n} from '../../form/Table/CustomTable';\r\nimport {\r\n Paper, Grid, TableContainer, TableSortLabel, IconButton, Typography, TablePagination,\r\n DialogContent, DialogActions, Checkbox, Button\r\n} from '@material-ui/core';\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport SelectNoForm from '../../form/SelectNoFormItem';\r\nimport { TextFieldInputFreeText } from '../../form/InputNoForm';\r\nimport DatePickerRangeNoForm from '../../form/DatePickerRangeNoForm';\r\nimport EventApprove from '../EventApprove'\r\nimport { List as LINQ } from 'linqts';\r\nimport Axios from 'axios';\r\nimport { combineReducers } from 'redux';\r\nconst dateFormat = require('dateformat');\r\nconst sController = \"EventRecord\";\r\nconst EventRecord = (props) => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [rowsData, setRowData] = React.useState([] as any[]);\r\n const [MasterData, setMasterData] = React.useState({\r\n lstEventGroup: [] as any[],\r\n lstCompyne: [] as any[],\r\n lstArea: [] as any[],\r\n lstEventType: [] as any[],\r\n lstLavel: [] as any[],\r\n lstCompyneCSR: [] as any[],\r\n });\r\n\r\n const [selectDate, setSelectDate] = React.useState([new Date().setDate(new Date().getDate() - 30), new Date()] as any);\r\n const [selectData, setSelectData] = React.useState({ EventGrupe: \"\", Compyne: \"\", Area: \"\", EventType: \"\", Lavel: \"\", TextSerch: \"\" });\r\n const [sMode, setMode] = React.useState(\"\");\r\n const [sShowExport, setShowExport] = React.useState(false);\r\n //#region API\r\n const LoadData = () => {\r\n let params = new URLSearchParams(window.location.search)\r\n let ID = Decrypt(params.get('ID')) + \"\";\r\n let Mode = Decrypt(params.get('Mode')) + \"\";\r\n setMode(Mode);\r\n if (Mode === \"Report\") {\r\n setSelectDate([null, null]);\r\n }\r\n // }else{\r\n // setSelectDate([undefined,undefined])\r\n // }\r\n let obj = {\r\n 'nEventGroup': null,\r\n 'nEventType': null,\r\n 'nArea': null,\r\n 'nCompyne': null,\r\n 'nLavel': null,\r\n 'sText': \"\",\r\n 'sStartDate': dateFormat(selectDate[0], \"dd/mm/yyyy\"),\r\n 'sEndDate': dateFormat(selectDate[1], \"dd/mm/yyyy\"),\r\n 'sMode': Mode,\r\n 'sArrEventID': ID\r\n };\r\n AxiosPost(sController + \"/onLoad\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n\r\n // if (Mode === \"Report\") {\r\n\r\n selectData.EventGrupe = response.sDefallGroupEvent;\r\n selectData.Compyne = response.sDefallCompany;\r\n selectData.Area = response.sDefallArea;\r\n selectData.EventType = response.sDefallEventType;\r\n setSelectData(selectData);\r\n getArea(response.sDefallGroupEvent, response.sDefallCompany);\r\n getEventType(response.sDefallGroupEvent, response.sDefallCompany, response.sDefallArea);\r\n\r\n // }\r\n MasterData.lstCompyne = response.lstCompyne;\r\n MasterData.lstEventGroup = response.lstEventGroup;\r\n MasterData.lstLavel = response.lstSecurityLevel;\r\n MasterData.lstCompyneCSR = response.lstCompyneCSR;\r\n setMasterData({ ...MasterData });\r\n\r\n setRowData(new LINQ(response.lstEventData).Distinct().ToArray());\r\n\r\n\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n const GetData = () => {\r\n let obj = {\r\n 'nEventGroup': selectData.EventGrupe != \"\" ? +selectData.EventGrupe : null,\r\n 'nEventType': selectData.EventType != \"\" && selectData.EventType != null ? +selectData.EventType : null,\r\n 'nArea': selectData.Area != \"\" && selectData.Area != null ? +selectData.Area : null,\r\n 'nCompyne': selectData.Compyne != \"\" ? +selectData.Compyne : null,\r\n 'nLavel': (+selectData.EventGrupe) === 3 ? (selectData.Lavel != \"\" && selectData.Lavel != null ? +selectData.Lavel : null) : null,\r\n 'sText': selectData.TextSerch,\r\n 'sStartDate': selectDate[0] != null ? dateFormat(selectDate[0], \"dd/mm/yyyy\") : \"\",\r\n 'sEndDate': selectDate[1] != null ? dateFormat(selectDate[1], \"dd/mm/yyyy\") : \"\",\r\n 'sMode': \"\",\r\n 'sArrEventID': \"\"\r\n };\r\n AxiosPost(sController + \"/GetData\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setRowData(new LINQ(response.lstEventData).Distinct().ToArray());\r\n setPage(0);\r\n setRowsPerPage(10);\r\n \r\n if (response.lstEventData.length > 0) {\r\n setShowExport(true)\r\n }\r\n else setShowExport(false)\r\n\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n //#region Export\r\n const GetExportData = async () => {\r\n // BlockUI();\r\n let obj = {\r\n 'nEventGroup': selectData.EventGrupe != \"\" ? +selectData.EventGrupe : null,\r\n 'nEventType': selectData.EventType != \"\" && selectData.EventType != null ? +selectData.EventType : null,\r\n 'nArea': selectData.Area != \"\" && selectData.Area != null ? +selectData.Area : null,\r\n 'nCompyne': selectData.Compyne != \"\" ? +selectData.Compyne : null,\r\n 'nLavel': (+selectData.EventGrupe) === 3 ? (selectData.Lavel != \"\" && selectData.Lavel != null ? +selectData.Lavel : null) : null,\r\n 'sText': selectData.TextSerch,\r\n 'sStartDate': selectDate[0] != null ? dateFormat(selectDate[0], \"dd/mm/yyyy\") : \"\",\r\n 'sEndDate': selectDate[1] != null ? dateFormat(selectDate[1], \"dd/mm/yyyy\") : \"\",\r\n 'lstEventData': rowsData,\r\n 'lstEventGroup': MasterData.lstEventGroup,\r\n 'lstArea': MasterData.lstArea,\r\n 'lstEventType': MasterData.lstEventType,\r\n 'lstLevel': MasterData.lstLavel\r\n }\r\n\r\n let fileName = \"6.Event Record_Export_\" + dateFormat(new Date(), \"ddMMyyyyHHmm\") + \".xlsx\";\r\n await AxiosPostExportFile(sController + \"/ExportExcels\", obj, fileName, () => { }, BlockUI, UnBlockUI);\r\n }\r\n\r\n //#endregion\r\n const getEventType = (EventGrupe, Compyne, Area) => {\r\n let obj = {\r\n 'nEventGroup': EventGrupe != \"\" ? +EventGrupe : null,\r\n 'nCompyne': Compyne != \"\" ? +Compyne : null,\r\n 'nArea': Area != \"\" ? +Area : null,\r\n };\r\n if (Area != \"\") {\r\n AxiosPost(sController + \"/GetEventType\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n MasterData.lstEventType = new LINQ(response).Distinct().ToArray();\r\n setMasterData({ ...MasterData });\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n } else {\r\n MasterData.lstEventType = [];\r\n setMasterData({ ...MasterData });\r\n }\r\n };\r\n\r\n const getArea = (EventGrupe, Compyne) => {\r\n let obj = {\r\n 'nEventGroup': EventGrupe != \"\" ? +EventGrupe : null,\r\n 'nCompyne': Compyne != \"\" ? +Compyne : null,\r\n };\r\n AxiosPost(sController + \"/GetAear\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n MasterData.lstArea = response;\r\n setMasterData({ ...MasterData });\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n\r\n const onDelete = () => {\r\n DialogConfirmDelete(() => {\r\n let qbj = {\r\n 'lstEventID': selected\r\n };\r\n AxiosPost(sController + \"/DeleteEvent\", qbj, (response) => {\r\n ResultDeleteAPI(false, response, null, () => {\r\n LoadData();\r\n setSelected([]);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n };\r\n //#endregion\r\n\r\n //#region Sort \r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(defaultPage);\r\n const [order, setOrder] = React.useState('desc');\r\n const [orderBy, setOrderBy] = React.useState('dEventDate');\r\n const [selected, setSelected] = React.useState([]);\r\n const isSelected = (ID: number) => selected.indexOf(ID) !== -1;\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n const headCells: HeadCell[] = [\r\n { id: 'No', numeric: true, disablePadding: true, label: 'No.', width: 1, isSort: false },\r\n { id: 'dEventDate', numeric: true, disablePadding: true, label: 'Event Date', width: 10, isSort: true },\r\n { id: 'sCompanyName', numeric: false, disablePadding: true, label: 'Company', width: 1, isSort: true },\r\n { id: 'sAreaName', numeric: false, disablePadding: true, label: 'Area/Sub Area', width: 15, isSort: true },\r\n { id: 'sEventGroupName', numeric: false, disablePadding: true, label: 'Event Group', width: 9, isSort: true },\r\n { id: '', numeric: true, disablePadding: false, label: 'Status', width: 2, isSort: false },\r\n { id: 'sEventTypeName', numeric: false, disablePadding: false, label: 'Event Type', width: 25, isSort: true },\r\n { id: 'sReportby', numeric: true, disablePadding: false, label: 'Reporter', width: 19, isSort: true },\r\n { id: 'dCreateDate', numeric: true, disablePadding: false, label: 'Reporting Date', width: 20, isSort: true },\r\n { id: 'sStatusName', numeric: true, disablePadding: false, label: 'Reporting Status', width: 20, isSort: true },\r\n { id: 'isApprover', numeric: true, disablePadding: false, label: '', width: 2, isSort: false },\r\n ];\r\n\r\n const handleSelectAllClick = (event: React.ChangeEvent) => {\r\n if (event.target.checked) {\r\n let ed = new LINQ(rowsData).Where(w => w.isDelete === true).ToArray();\r\n const newSelecteds = ed.map((n) => n.nEventReportID);\r\n //isDelete\r\n setSelected(newSelecteds);\r\n return;\r\n }\r\n setSelected([]);\r\n };\r\n const handleClick = (event: React.MouseEvent, ID: any) => {\r\n const selectedIndex = selected.indexOf(ID);\r\n let newSelected: number[] = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, ID);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n setSelected(newSelected);\r\n };\r\n //#endregion\r\n\r\n //#region set Pagination\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n rowsData.length > 0 ?\r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n )}\r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n Selected ({selected.length}) Row\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n\r\n //#endregion\r\n\r\n //#region Fiter\r\n const Fiter = () => {\r\n return (\r\n \r\n\r\n \r\n \r\n x.value === selectData.EventGrupe)}\r\n onChange={values => {\r\n setSelectData({ ...selectData, EventGrupe: (values != null ? values.value : \"\"), Compyne: \"\", Area: \"\", EventType: \"\" });\r\n setMasterData({\r\n ...MasterData, lstArea: []\r\n })\r\n }} />\r\n \r\n \r\n x.value === selectData.Compyne) : MasterData.lstCompyne.find(x => x.value === selectData.Compyne)}\r\n onChange={values => {\r\n setSelectData({ ...selectData, Compyne: (values != null ? values.value : \"\"), Area: \"\", EventType: \"\" });\r\n getArea(selectData.EventGrupe, values != null ? values.value : 0);\r\n }} />\r\n \r\n \r\n x.value === selectData.Area)}\r\n onChange={values => {\r\n setSelectData({\r\n ...selectData, Area: (values != null ? values.value : \"\"), EventType: \"\"\r\n });\r\n getEventType(selectData.EventGrupe, selectData.Compyne, values != null ? values.value : 0);\r\n\r\n }} />\r\n \r\n \r\n 0 ? MasterData.lstEventType.find(x => x.value === selectData.EventType) : null)}\r\n onChange={values => { setSelectData({ ...selectData, EventType: (values != null ? values.value : \"\") }) }} />\r\n \r\n \r\n x.value === selectData.Lavel) : ''}\r\n onChange={values => { setSelectData({ ...selectData, Lavel: (values != null ? values.value : \"\") }) }}\r\n disable={(+selectData.EventGrupe) !== 3} />\r\n \r\n \r\n { setSelectData({ ...selectData, TextSerch: val }) }} />\r\n \r\n \r\n {\r\n setSelectDate(e);\r\n }}>\r\n \r\n \r\n { GetData() }} />\r\n \r\n \r\n
\r\n {rowsData.length > 0 ?
\r\n { GetExportData() }} />\r\n
: }\r\n
\r\n
\r\n
\r\n\r\n
\r\n )\r\n };\r\n //#endregion\r\n\r\n const [open, setOpen] = React.useState({ isShow: false, EventID: null, Mode: \"\" });\r\n\r\n const handleClose = (value: string) => {\r\n setOpen({ ...open, isShow: false, EventID: null, Mode: \"\" });\r\n if ((+value) === 1) {\r\n GetData();\r\n }\r\n };\r\n\r\n const handleShew = (EventID, Mode) => {\r\n setOpen({ ...open, isShow: true, EventID: EventID, Mode: Mode });\r\n };\r\n const EventApproveReport = React.useCallback(() => {\r\n return { handleClose(e) }}\r\n title={\r\n open.Mode === \"Approve\" ? \"Approve Data\" : open.Mode === \"View\" ? \"Detail\" : \"Edit Data\"}\r\n eventID={open.EventID}\r\n Mode={open.Mode} />\r\n }, [open]);\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
EVENT RECORD
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {/*
*/}\r\n \r\n \r\n \r\n \r\n \r\n 0 && selected.length < new LINQ(rowsData).Where(w => w.isDelete === true).ToArray().length}\r\n checked={new LINQ(rowsData).Where(w => w.isDelete === true).ToArray().length > 0 && selected.length === new LINQ(rowsData).Where(w => w.isDelete === true).ToArray().length}\r\n onChange={handleSelectAllClick}\r\n />\r\n \r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n \r\n \r\n \r\n {rowsData.length > 0 ?\r\n stableSort(rowsData, getComparator(order, orderBy)).slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((item, index) => {\r\n const isItemSelected = isSelected(+item.nEventReportID);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n return (\r\n \r\n \r\n {item.isDelete && handleClick(event, item.nEventReportID)}\r\n inputProps={{ 'aria-labelledby': labelId }}\r\n />}\r\n \r\n {(rowsPerPage * (page)) + (index + 1)}\r\n {dateFormat(item.dEventDate, \"dd/mm/yyyy\")}\r\n {item.sCompanyName}\r\n {item.sAreaName}\r\n {item.sEventGroupName}\r\n \r\n \r\n {\r\n handleShew(item.nEventReportID, \"View\");\r\n }}\r\n style={{ textTransform: \"none\", textAlign: \"left\",verticalAlign:\"top\",padding:\"0px\" }}>\r\n {item.sEventTypeName}\r\n \r\n \r\n {item.sReportby}\r\n {dateFormat(item.dCreateDate, \"dd/mm/yyyy HH:MM\")}\r\n {item.sStatusName}\r\n \r\n {item.isEdite && { handleShew(item.nEventReportID, \"Edite\") }} >Edit}\r\n {item.isView && { handleShew(item.nEventReportID, \"View\") }} >view}\r\n {item.isApprove && { handleShew(item.nEventReportID, \"Approve\") }} >Approver}\r\n \r\n \r\n )\r\n })\r\n :\r\n \r\n No Data\r\n \r\n }\r\n \r\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 EventRecord;\r\n","import React, { Fragment, useEffect } from 'react';\r\nimport { List as LINQ } from 'linqts';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\nimport * as am4core from \"@amcharts/amcharts4/core\";\r\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\r\nimport am4themes_animated from \"@amcharts/amcharts4/themes/animated\";\r\nimport am4themes_kelly from \"@amcharts/amcharts4/themes/kelly\";\r\n\r\nam4core.useTheme(am4themes_animated);\r\nam4core.useTheme(am4themes_kelly);\r\nam4core.addLicense(\"CH208466903\");\r\n\r\nconst dateFormat = require('dateformat');\r\nconst Charts_ByEventType = (props) => {\r\n const { data, startDate, endDate, exportImg, nameCharts, dAsof } = props;\r\n const [Conwidtht, setConwidtht] = React.useState(\"100%\");\r\n // const [objData, setobjData] = useState({ lstByEventType: [] as any[], lstAreaAll: [] as any[] });\r\n const chartData = [] as any[];\r\n useEffect(() => {\r\n if (data != null) {\r\n new LINQ(data.lstByEventType).OrderBy(o => o.nEventOrderID).ToArray().forEach(f => {\r\n let objData = { 'EventTypeName': f.nEventTypeName };\r\n f.lstAreaDetail.forEach(x => {\r\n objData[x.sAreaName] = x.nCount;\r\n });\r\n chartData.push(objData);\r\n });\r\n\r\n let objDataTotalNot = { 'EventTypeName': \"Not Report\" };\r\n (data.lstNotReport||[]).forEach(x => {\r\n objDataTotalNot[x.sAreaName] = x.nCount;\r\n });\r\n chartData.push(objDataTotalNot);\r\n\r\n if (chartData.length < 5) {\r\n setConwidtht(\"50%\");\r\n }\r\n let chart = am4core.create(\"chartdiv\" + (nameCharts || \"\"), am4charts.XYChart);\r\n let arrColor = [\"#0000FF\", \"#228B22\", \"#9400D3\", \"#00CED1\", \"#FF1493\", \"#FFD700\", \"#FFA500\", \"#FF8C00\", \"#7B68EE\", \"#A3E7D8\", \"#F298B1\", \"#A4C8F0\", \"#F9A484\", \"#F4EFAF\", \"#E1FD8E\", \"#EFA694\", \"#FFBE7D\", \"#88BBDD\", \"#6699AA\", \"#88DDBB\", \"#88BBAA\", \"#B9E3AE\", \"#BACAB3\", \"#FFFF88\", \"#9876B1\", \"#F2ED8C\", \"#CBAB8D\", \"#FFDDDD\", \"#FDB4BF\", \"#FF9797\", \"#D0B3E1\", \"#B3B3D9\", \"#C0C0C0\"];\r\n chart.colors.list = arrColor.map((el, index) => { return am4core.color(el) });\r\n\r\n chart.responsive.enabled = true;\r\n // Add data\r\n chart.data = chartData;\r\n // Create axes\r\n var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\r\n categoryAxis.dataFields.category = \"EventTypeName\";\r\n categoryAxis.renderer.grid.template.location = 0;\r\n categoryAxis.renderer.minGridDistance = 20;\r\n\r\n\r\n\r\n var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\r\n valueAxis.title.text = \" Report Amount\";\r\n valueAxis.min = 0;\r\n\r\n\r\n // Create series\r\n data.lstAreaAll.forEach(f => {\r\n var series = chart.series.push(new am4charts.ColumnSeries3D());\r\n series.dataFields.valueY = f.sAreaName;\r\n series.dataFields.categoryX = \"EventTypeName\";\r\n series.name = f.sAreaName;\r\n series.stacked = true;\r\n // series.calculatePercent = false;\r\n // series.tooltipText = \"{name}: [bold]{valueY}[/]\";\r\n\r\n series.columns.template.tooltipText = \"{name}: [bold]{valueY}[/]\";\r\n\r\n });\r\n\r\n var label = categoryAxis.renderer.labels.template;\r\n label.tooltipText = \"{EventTypeName}\";\r\n label.fontSize = 14;\r\n categoryAxis.events.on(\"sizechanged\", function (ev) {\r\n var axis = ev.target;\r\n var cellWidth = axis.pixelWidth / (axis.endIndex - axis.startIndex);\r\n axis.renderer.labels.template.rotation = -45;\r\n axis.renderer.labels.template.horizontalCenter = \"right\";\r\n axis.renderer.labels.template.verticalCenter = \"top\";//middle\r\n\r\n });\r\n\r\n\r\n\r\n // chart.paddingBottom = 150;\r\n // chart.maskBullets = false;\r\n\r\n // Add cursor\r\n // chart.cursor = new am4charts.XYCursor();\r\n // chart.cursor.behavior = \"none\";\r\n // chart.cursor.lineY.disabled = true;\r\n // chart.cursor.lineX.disabled = true;\r\n // Add legend\r\n chart.legend = new am4charts.Legend();\r\n //ให้ Lagend อยู่ด้านบน\r\n chart.legend.position = \"top\";\r\n chart.legend.contentAlign = \"center\";\r\n\r\n chart.exporting.getImage(\"png\").then((data) => {\r\n exportImg(data);\r\n });\r\n\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n
Summary Report by Event Type
\r\n
{startDate || \"\"} - {endDate || \"\"} {\" \" + (dAsof != undefined && dAsof != null ? \" (As of \" + dateFormat(dAsof, \"dd/mm/yyyy\")+\")\" : \"\")}
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n\r\n};\r\n\r\nexport default Charts_ByEventType;","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport FormErrors from \"./formErrors\";\r\nimport { FastField } from \"formik\";\r\nimport FormLabel from \"@material-ui/core/FormLabel\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormGroup from \"@material-ui/core/FormGroup\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport SmsOutlinedIcon from '@material-ui/icons/SmsOutlined';\r\nimport { ParseHtml } from '../SysComponent/SystemComponent';\r\nconst CheckboxListNoForm = (props) => {\r\n const {\r\n label,\r\n name,\r\n inputProps,\r\n required,\r\n dataProvider,\r\n defaultAll,\r\n onSelect\r\n } = props;\r\n const [checked, setchecked] = React.useState(defaultAll || [] as any[])\r\n const isSelected = (ID: number) => checked.indexOf(ID) !== -1;\r\n\r\n const handleSelect = (event: React.MouseEvent, ID: any) => {\r\n const selectedIndex = checked.indexOf(ID);\r\n let newSelected: number[] = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(checked, ID);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(checked.slice(1));\r\n } else if (selectedIndex === checked.length - 1) {\r\n newSelected = newSelected.concat(checked.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n checked.slice(0, selectedIndex),\r\n checked.slice(selectedIndex + 1),\r\n );\r\n }\r\n setchecked(newSelected);\r\n onSelect(newSelected);\r\n };\r\n\r\n return (\r\n \r\n {label}\r\n \r\n \r\n {dataProvider.map((row, index) => (\r\n\r\n \r\n handleSelect(event, row.id)}\r\n {...inputProps}\r\n />\r\n }\r\n label={row.label}\r\n />\r\n \r\n ))}\r\n \r\n \r\n \r\n );\r\n}\r\nexport default CheckboxListNoForm;","import React, { Fragment, useEffect } from 'react';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\nimport { List as LINQ } from 'linqts';\r\nimport * as am4core from \"@amcharts/amcharts4/core\";\r\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\r\nimport am4themes_animated from \"@amcharts/amcharts4/themes/animated\";\r\nimport am4themes_kelly from \"@amcharts/amcharts4/themes/kelly\";\r\nimport CheckboxListNoForm from \"../../form/CheckboxListNoForm\";\r\nconst dateFormat = require('dateformat');\r\nam4core.useTheme(am4themes_animated);\r\nam4core.useTheme(am4themes_kelly);\r\nam4core.addLicense(\"CH208466903\");\r\nconst Charts_SummaryByEventType = (props) => {\r\n const { data, startDate, endDate, exportImg, SelectAreaSumary, nameCharts,dAsof } = props;\r\n const [AreaData, setAreaData] = React.useState([] as any[]);\r\n const [AreaSelect, setAreaSelect] = React.useState([] as any[]);\r\n\r\n useEffect(() => {\r\n if (data != null) {\r\n data.lstAreaAll.forEach(f => {\r\n AreaData.push({ id: f.nAreaID, label: f.sAreaName });\r\n AreaSelect.push(f.nAreaID);\r\n });\r\n\r\n setAreaData([...AreaData]);\r\n setAreaSelect([...AreaSelect]);\r\n createCharts(AreaSelect);\r\n }\r\n }, []);\r\n\r\n const createCharts = (AreaSelect_) => {\r\n const chartData = [] as any[];\r\n\r\n let lstAreaID = new LINQ(AreaSelect_).ToList();\r\n data.lstByEventType.forEach(f => {\r\n let arrS = new LINQ(f.lstAreaDetail).Where(w => lstAreaID.Contains(w.nAreaID)).ToList();\r\n let nCont = 0;\r\n arrS.ForEach(y => {\r\n nCont = (nCont + y.nCountDay);\r\n });\r\n let objData = {\r\n 'EventTypeID': f.nEventTypeID,\r\n 'EventTypeName': f.nEventTypeName,\r\n 'Count': nCont\r\n };\r\n chartData.push(objData);\r\n\r\n });\r\n // Create chart instance\r\n var chart = am4core.create(\"chartSummaryByEventTypediv\" + (nameCharts || \"\"), am4charts.PieChart3D);\r\n\r\n // Add data\r\n chart.data = chartData;\r\n\r\n // Add and configure Series\r\n var pieSeries = chart.series.push(new am4charts.PieSeries3D());\r\n pieSeries.dataFields.value = \"Count\";\r\n pieSeries.dataFields.category = \"EventTypeName\";\r\n let arrColor = [\"#10bc2d\",\"#0000FF\", \"#9400D3\", \"#F78813\", \"#FF0000\", \"#00CED1\", \"#FF1493\", \"#FFD700\", \"#FFA500\", \"#FF8C00\", \"#7B68EE\", \"#A3E7D8\", \"#F298B1\", \"#A4C8F0\", \"#F9A484\", \"#F4EFAF\", \"#E1FD8E\", \"#EFA694\", \"#FFBE7D\", \"#88BBDD\", \"#6699AA\", \"#88DDBB\", \"#88BBAA\", \"#B9E3AE\", \"#BACAB3\", \"#FFFF88\", \"#9876B1\", \"#F2ED8C\", \"#CBAB8D\", \"#FFDDDD\", \"#FDB4BF\", \"#FF9797\", \"#D0B3E1\", \"#B3B3D9\", \"#C0C0C0\"];\r\n\r\n\r\n pieSeries.ticks.template.disabled = true;\r\n pieSeries.alignLabels = false;\r\n //pieSeries.labels.template.text = \"{value.percent.formatNumber('#.0')}%\";\r\n\r\n pieSeries.labels.template.adapter.add('radius', function (radius, target) {\r\n\r\n if (target.dataItem && (target.dataItem.values.value.percent === 0)) {\r\n target.dataItem.label.text = \"\";\r\n return 0;\r\n } else {\r\n target.dataItem.label.text = \"{value.percent.formatNumber('#.0')}%\";\r\n }\r\n return radius;\r\n });\r\n\r\n pieSeries.labels.template.radius = am4core.percent(-50);\r\n pieSeries.labels.template.fill = am4core.color(\"white\");\r\n pieSeries.colors.list = arrColor.map((el, index) => { return am4core.color(el) });\r\n\r\n pieSeries.labels.template.adapter.add(\"radius\", function (radius, target) {\r\n if (target.dataItem && (target.dataItem.values.value.percent < 10)) {\r\n return 0;\r\n }\r\n return radius;\r\n });\r\n pieSeries.labels.template.adapter.add(\"fill\", function (color, target) {\r\n var dummyDataItem = pieSeries.dataItems.getIndex(0);\r\n if (target.dataItem && (target.dataItem.values.value.percent < 10)) {\r\n return am4core.color(\"#000\");\r\n }\r\n return color;\r\n });\r\n\r\n chart.legend = new am4charts.Legend();\r\n chart.exporting.getImage(\"png\").then((data) => {\r\n exportImg(data);\r\n });\r\n SelectAreaSumary(AreaSelect_);\r\n\r\n };\r\n const CheckboxListNoForm_c = React.useCallback(() => {\r\n return ( {\r\n setAreaSelect([...e]);\r\n createCharts(e);\r\n }} />)\r\n }, []);\r\n\r\n return (\r\n \r\n {/* Summary By Event Type */}\r\n
% Report by Event Type
\r\n
{startDate || \"\"} - {endDate || \"\"}{\" \" + (dAsof != undefined && dAsof != null ? \" (As of \" + dateFormat(dAsof, \"dd/mm/yyyy\")+\")\" : \"\")}
\r\n \r\n
\r\n\r\n
\r\n )\r\n\r\n};\r\n\r\nexport default Charts_SummaryByEventType;","import React, { Fragment, useState, useEffect } from 'react';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\nimport * as am4core from \"@amcharts/amcharts4/core\";\r\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\r\nimport am4themes_animated from \"@amcharts/amcharts4/themes/animated\";\r\nimport am4themes_kelly from \"@amcharts/amcharts4/themes/kelly\";\r\nconst dateFormat = require('dateformat');\r\nam4core.useTheme(am4themes_animated);\r\nam4core.useTheme(am4themes_kelly);\r\nam4core.addLicense(\"CH208466903\");\r\nconst Chats_ReportStatistics = (props) => {\r\n const { data, startDate, endDate, exportImg, nameCharts,dAsof } = props;\r\n const chartData = [] as any[];\r\n const [Conwidtht, setConwidtht] = React.useState(\"100%\");\r\n useEffect(() => {\r\n if (data != null) {\r\n var chart = am4core.create(\"chartStatisticsdiv\" + (nameCharts || \"\"), am4charts.XYChart);\r\n // let arrColor =[\"#3498DB\",\"#7B7D7D\"];\r\n let arrColor = [\"#208EFB\", \"#E5E7E9\"];\r\n chart.colors.list = arrColor.map((el, index) => { return am4core.color(el) });\r\n let valueAxisMax = 6;\r\n data.lstAreaAll.forEach(f => {\r\n let ReportCount = f.nStatisticsRepor;\r\n // data.lstByEventType.forEach(d => {\r\n // d.lstAreaDetail.forEach(x => {\r\n // if (x.nAreaID === f.nAreaID) ReportCount = (ReportCount + x.nCountDay);\r\n // });\r\n // });\r\n\r\n // var qNotReport = new LINQ(data.lstNotReport).Where(w => w.nAreaID === f.nAreaID).FirstOrDefault();\r\n let NotReportCount = f.nStatisticsNotRepor;//qNotReport != null ? qNotReport.nCount : 0\r\n chartData.push({ \"AreaName\": f.sAreaName, \"Reporting\": ReportCount, \"NotReport\": NotReportCount })\r\n if (valueAxisMax < ReportCount) valueAxisMax = ReportCount;\r\n if (valueAxisMax < NotReportCount) valueAxisMax = NotReportCount;\r\n });\r\n if (chartData.length < 5) {\r\n setConwidtht(\"50%\");\r\n }\r\n\r\n // Add data\r\n chart.data = chartData;\r\n // Create axes\r\n var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\r\n categoryAxis.dataFields.category = \"AreaName\";\r\n categoryAxis.title.text = \"\";\r\n categoryAxis.renderer.grid.template.location = 0;\r\n categoryAxis.renderer.minGridDistance = 20;\r\n\r\n var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\r\n valueAxis.title.text = \"Day\";\r\n valueAxis.min = 0;\r\n valueAxis.max = valueAxisMax + 5;\r\n // Create series\r\n var series = chart.series.push(new am4charts.ColumnSeries());\r\n series.dataFields.valueY = \"Reporting\";\r\n series.dataFields.categoryX = \"AreaName\";\r\n series.name = \"Reporting\";\r\n series.columns.template.tooltipText = \"{name}: [bold]{valueY}[/]\";\r\n\r\n var bullet = series.bullets.push(new am4charts.LabelBullet())\r\n bullet.interactionsEnabled = true\r\n bullet.dy = (-7);\r\n bullet.label.text = '{valueY}'\r\n bullet.label.fill = am4core.color('#000')\r\n\r\n // var labelBullet = series.bullets.push(new am4charts.LabelBullet());\r\n // labelBullet.label.text = \"{valueY}\";\r\n // labelBullet.locationY = 0.9;\r\n // labelBullet.label.hideOversized = true;\r\n // This has no effect\r\n // series.stacked = true;\r\n\r\n var series2 = chart.series.push(new am4charts.ColumnSeries());\r\n series2.dataFields.valueY = \"NotReport\";\r\n series2.dataFields.categoryX = \"AreaName\";\r\n series2.name = \"Not Reporting\";\r\n series2.columns.template.tooltipText = \"{name}: [bold]{valueY}[/]\";\r\n\r\n var bullet2 = series2.bullets.push(new am4charts.LabelBullet())\r\n bullet2.interactionsEnabled = true\r\n bullet2.dy = (-7);\r\n bullet2.label.text = '{valueY}'\r\n bullet2.label.fill = am4core.color('#000')\r\n\r\n\r\n // var labelBullet2 = series2.bullets.push(new am4charts.LabelBullet());\r\n // labelBullet2.label.text = \"{valueY}\";\r\n // labelBullet2.locationY = 0.9;\r\n // labelBullet2.label.hideOversized = true;\r\n\r\n var label = categoryAxis.renderer.labels.template;\r\n label.truncate = true;\r\n //label.renderer.labels.template.disabled = true;\r\n // label.maxWidth = 130;\r\n label.tooltipText = \"{AreaName}\";\r\n label.fontSize = 14;\r\n categoryAxis.events.on(\"sizechanged\", function (ev) {\r\n var axis = ev.target;\r\n var cellWidth = axis.pixelWidth / (axis.endIndex - axis.startIndex);\r\n // if (cellWidth < axis.renderer.labels.template.maxWidth) {\r\n axis.renderer.labels.template.rotation = -45;\r\n axis.renderer.labels.template.horizontalCenter = \"right\";\r\n axis.renderer.labels.template.verticalCenter = \"middle\";\r\n // }\r\n // else {\r\n // axis.renderer.labels.template.rotation = -45;\r\n // axis.renderer.labels.template.horizontalCenter = \"middle\";\r\n // axis.renderer.labels.template.verticalCenter = \"top\";\r\n // }\r\n });\r\n // Add cursor\r\n // chart.cursor = new am4charts.XYCursor();\r\n // chart.cursor.behavior = \"none\"\r\n // Add legend\r\n chart.legend = new am4charts.Legend();\r\n //ให้ Lagend อยู่ด้านบน\r\n chart.legend.position = \"top\";\r\n chart.legend.contentAlign = \"center\";\r\n\r\n chart.exporting.getImage(\"png\").then((data) => {\r\n exportImg(data);\r\n });\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n
Summary of Status Report
\r\n
{startDate || \"\"} - {endDate || \"\"} {\" \" + (dAsof != undefined && dAsof != null ? \" (As of \" + dateFormat(dAsof, \"dd/mm/yyyy\")+\")\" : \"\")}
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n\r\n};\r\n\r\nexport default Chats_ReportStatistics;","import React, { Fragment, useState, useEffect } from 'react';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\nimport { Grid } from '@material-ui/core';\r\nimport { Button, Card, CardBody, Table } from 'reactstrap';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\nimport * as am4core from \"@amcharts/amcharts4/core\";\r\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\r\nimport am4themes_animated from \"@amcharts/amcharts4/themes/animated\";\r\nimport am4themes_kelly from \"@amcharts/amcharts4/themes/kelly\";\r\nimport { List as LINQ } from 'linqts';\r\nconst dateFormat = require('dateformat');\r\nam4core.useTheme(am4themes_animated);\r\nam4core.useTheme(am4themes_kelly);\r\nam4core.addLicense(\"CH208466903\");\r\nconst Chats_Report_Security = (props) => {\r\n const { data, lstTableReporSecurity, startDate, endDate, exportImg,dAsof } = props;\r\n const chartData = [] as any[];\r\n const [Conwidtht, setConwidtht] = React.useState(\"100%\");\r\n\r\n useEffect(() => {\r\n if (data != null) {\r\n let valueAxisMax = 6;\r\n data.lstByEventType_Security.forEach(f => {\r\n let objData = { \"AreaName\": f.sAreaName};\r\n if(f.nLevent1_Count>0)objData[\"Level 1\"] = f.nLevent1_Count;\r\n if(f.nLevent2_Count>0)objData[\"Level 2\"] = f.nLevent2_Count;\r\n if(f.nLevent3_Count>0)objData[\"Level 3\"] = f.nLevent3_Count;\r\n if(f.nLevent4_Count>0)objData[\"Level 4\"] = f.nLevent4_Count;\r\n // let nLevent1_Count_ = \"Level 1 :\" +f.nLevent1_Count;\r\n // let nLevent2_Count_ = \"Level 2 :\" +f.nLevent2_Count;\r\n // let nLevent3_Count_ = \"Level 3 :\" +f.nLevent3_Count;\r\n // let nLevent4_Count_ = \"Level 4 :\" +f.nLevent4_Count;\r\n chartData.push(objData);\r\n \r\n \r\n if (valueAxisMax < f.nLevent1_Count) valueAxisMax = f.nLevent1_Count;\r\n if (valueAxisMax < f.nLevent2_Count) valueAxisMax = f.nLevent2_Count;\r\n if (valueAxisMax < f.nLevent3_Count) valueAxisMax = f.nLevent3_Count;\r\n if (valueAxisMax < f.nLevent4_Count) valueAxisMax = f.nLevent4_Count;\r\n });\r\n \r\n if (chartData.length < 5) {\r\n setConwidtht(\"50%\");\r\n }\r\n // Create chart instance\r\n var chart = am4core.create(\"chartdivYearly\", am4charts.XYChart);\r\n chart.marginRight = 400;\r\n // Add data\r\n chart.data = chartData;\r\n // Create axes\r\n var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\r\n categoryAxis.dataFields.category = \"AreaName\";\r\n categoryAxis.title.text = \"\";\r\n categoryAxis.renderer.grid.template.location = 0;\r\n categoryAxis.renderer.minGridDistance = 20;\r\n\r\n var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\r\n valueAxis.title.text = \"Report Amount\";\r\n valueAxis.min = 0;\r\n // valueAxis.max = valueAxisMax + 4;\r\n // Create series\r\n var series = chart.series.push(new am4charts.ColumnSeries3D());\r\n series.dataFields.valueY = \"Level 1\";\r\n series.dataFields.categoryX = \"AreaName\";\r\n series.name = \"Level 1\";\r\n series.columns.template.tooltipText = \"{name}: [bold]{valueY}[/]\";\r\n series.fill = am4core.color(\"#10bc2d\");\r\n series.strokeWidth = 0;\r\n series.stacked = true;\r\n\r\n var series2 = chart.series.push(new am4charts.ColumnSeries3D());\r\n series2.dataFields.valueY = \"Level 2\";\r\n series2.dataFields.categoryX = \"AreaName\";\r\n series2.name = \"Level 2\";\r\n series2.columns.template.tooltipText = \"{name}: [bold]{valueY}[/]\";\r\n series2.fill = am4core.color(\"#ffff00\");\r\n series2.strokeWidth = 0;\r\n series2.stacked = true;\r\n\r\n var series3 = chart.series.push(new am4charts.ColumnSeries3D());\r\n series3.dataFields.valueY = \"Level 3\";\r\n series3.dataFields.categoryX = \"AreaName\";\r\n series3.name = \"Level 3\";\r\n series3.columns.template.tooltipText = \"{name}: [bold]{valueY}[/]\";\r\n series3.fill = am4core.color(\"#ff7f02\");\r\n series3.strokeWidth = 0;\r\n series3.stacked = true;\r\n\r\n var series4 = chart.series.push(new am4charts.ColumnSeries3D());\r\n series4.dataFields.valueY = \"Level 4\";\r\n series4.dataFields.categoryX = \"AreaName\";\r\n series4.name = \"Level 4\";\r\n series4.columns.template.tooltipText = \"{name}: [bold]{valueY}[/]\";\r\n series4.fill = am4core.color(\"#fe0000\");\r\n series4.strokeWidth = 0;\r\n series4.stacked = true;\r\n\r\n var label = categoryAxis.renderer.labels.template;\r\n label.truncate = true;\r\n // label.maxWidth = 100;\r\n label.tooltipText = \"{AreaName}\";\r\n label.fontSize = 14;\r\n categoryAxis.events.on(\"sizechanged\", function (ev) {\r\n var axis = ev.target;\r\n var cellWidth = axis.pixelWidth / (axis.endIndex - axis.startIndex);\r\n // if (cellWidth < axis.renderer.labels.template.maxWidth) {\r\n axis.renderer.labels.template.rotation = -45;\r\n axis.renderer.labels.template.horizontalCenter = \"right\";\r\n axis.renderer.labels.template.verticalCenter = \"middle\";\r\n // }\r\n // else {\r\n // axis.renderer.labels.template.rotation = 0;\r\n // axis.renderer.labels.template.horizontalCenter = \"middle\";\r\n // axis.renderer.labels.template.verticalCenter = \"top\";\r\n // }\r\n });\r\n // Add cursor\r\n // chart.cursor = new am4charts.XYCursor();\r\n // chart.cursor.behavior = \"none\"\r\n // Add legend\r\n chart.legend = new am4charts.Legend();\r\n chart.legend.position = \"top\";\r\n chart.legend.contentAlign = \"center\";\r\n\r\n chart.exporting.getImage(\"png\").then((data) => {\r\n exportImg(data);\r\n });\r\n }\r\n }, []);\r\n return (\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {new LINQ(lstTableReporSecurity).OrderBy(o=> o.nCompanyOrderID)\r\n .ThenBy(t=> t.nAreaOrderID).ThenBy(t=> t.nSubAreaOrderID).ToArray().map((el, item) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n {/* borderLeft: \"2px solid rgb(15 15 15)\" */}\r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n
CompanyArea/Sub areaLevel 1
(Report)
Level 2
(Report)
Level 3
(Report)
Level 4
(Report)
Normal Status
(Report)
Abnormal Status
(Report)
Not Report
(Day)
{el.sCompanyName}{el.sAreaName}{el.nLavel1}{el.nLavel2}{el.nLavel3}{el.nLavel4}{(el.nLavel1 + el.nLavel2 + el.nLavel3 + el.nLavel4)}{el.nNormal}{el.nAbnormal}{el.nNotReport}
Total{(new LINQ(lstTableReporSecurity).Sum(s => s.nLavel1))}{(new LINQ(lstTableReporSecurity).Sum(s => s.nLavel2))}{(new LINQ(lstTableReporSecurity).Sum(s => s.nLavel3))}{(new LINQ(lstTableReporSecurity).Sum(s => s.nLavel4))}{(\r\n new LINQ(lstTableReporSecurity).Sum(s => s.nLavel1) +\r\n new LINQ(lstTableReporSecurity).Sum(s => s.nLavel2) +\r\n new LINQ(lstTableReporSecurity).Sum(s => s.nLavel3) +\r\n new LINQ(lstTableReporSecurity).Sum(s => s.nLavel4)\r\n )}{(new LINQ(lstTableReporSecurity).Sum(s => s.nNormal))}{(new LINQ(lstTableReporSecurity).Sum(s => s.nAbnormal))}\r\n {/* {(new LINQ(lstTableReporSecurity).Sum(s => s.nNotReport))} */}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Security Level
\r\n
{startDate || \"\"} - {endDate || \"\"} {\" \" + (dAsof != undefined && dAsof != null ? \" As of \" + dateFormat(dAsof, \"dd/mm/yyyy\") : \"\")}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n\r\n};\r\n\r\nexport default Chats_Report_Security;","import React, { Fragment, useState, useEffect, useCallback } from 'react';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\nimport { Grid } from '@material-ui/core';\r\nimport SelectFormItem from '../form/SelectFormItem';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\nimport { Link } from 'react-router-dom';\r\nimport { Encrypt, AxiosPost, scrollToElementValidate, FnBlock_UI, ResultAPI, MsgValidate, Effect, ParseHtml, AxiosPostExportFile } from '../SysComponent/SystemComponent';\r\nimport { Formik, Form } from \"formik\";\r\nimport { Button, Card, CardBody, Table } from 'reactstrap';\r\nimport { MuiButtonSearch,MuiButtonExport,MuiButtonExportPDF} from '../SysComponent/MaterialComponent'\r\nimport DatePickerRangeFormItem from 'components/form/DatePickerRangeFormItem';\r\nimport { List as LINQ } from 'linqts';\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport * as yup from 'yup';\r\nimport Charts_ByEventType from \"./ChartsComponent/Charts_ByEventType\"\r\nimport Charts_SummaryByEventType from \"./ChartsComponent/Charts_SummaryByEventType\"\r\nimport Chats_ReportStatistics from \"./ChartsComponent/Chats_ReportStatistics\"\r\nimport Chats_Report_Security from \"./ChartsComponent/Chats_Report_Security\"\r\n\r\nconst dateFormat = require('dateformat');\r\nconst sController = \"Report\";\r\nconst Report = () => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const [lstByEventType, setlstByEventType] = useState(null as any);\r\n const [lstTableSummaryEventReport, setlTableSummaryEventReport] = useState([] as any);\r\n const [lstTableEventType, setlTableEventType] = useState([] as any);\r\n const [lstTableSummaryEventReportDatail, setlTableSummaryEventReportDatail] = useState([] as any);\r\n const [lstTableReporSecurity, setllstTableReporSecurity] = useState([] as any);\r\n const [selectEventGroup, setselectEventGroup] = useState(0);\r\n const [selectDate, setselectDate] = useState({ startDate: \"\", endDate: \"\" });\r\n const [MasterData, setMasterData] = React.useState({\r\n lstCompany: [] as any[],\r\n lstCompanyCSR: [] as any[],\r\n lstEventGroup: [] as any[],\r\n lstArea: [] as any[],\r\n lstEventTypeData: [] as any[]\r\n })\r\n\r\n const [sImgChartsEvType, setImgCharts] = useState(\"\");\r\n const [sImgChartsSumEvType, setImgChartsSumEvType] = useState(\"\");\r\n const [sImgChartsSecurity, setImgChartsSecurity] = useState(\"\");\r\n const [sImgChartsStatistics, setImgChartsStatistics] = useState(\"\");\r\n const [SelectAreaStatistics, setSelectAreaStatistics] = useState([] as any[]);\r\n const [cFilterData, setcFilterData] = useState(null as any);\r\n\r\n const [isShoweExport, setisShoweExport] = useState(false);\r\n const [inFromEventReport, setFromEventReport] = useState({\r\n nCompanyID: \"\" as any,\r\n nEventGroupID: \"\" as any,\r\n lstAreaID: [] as any[],\r\n lstEventType: [] as any[],\r\n EventDate: [] as any[],\r\n\r\n });\r\n\r\n const validateOperation = yup.object().shape({\r\n nEventGroupID: yup.string().required(MsgValidate.PleaseSpecify + 'Event Group'),\r\n nCompanyID: yup.string().required(MsgValidate.PleaseSpecify + 'Company')\r\n });\r\n\r\n const LoadData = async () => {\r\n let obj = {\r\n 'nCompanyID': null,\r\n 'nEventGroupID': null,\r\n 'lstAreaID': null,\r\n 'lstEventType': null,\r\n 'sStartDate': '',\r\n 'sEndDate': '',\r\n };\r\n await AxiosPost(sController + \"/LoadData\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setFromEventReport({\r\n ...inFromEventReport,\r\n nCompanyID: response.nDefaultCompanyID + \"\",\r\n nEventGroupID: response.nDefaultEventGroup + \"\",\r\n EventDate: [new Date(response.dDefaultStartDate), new Date(response.dDefaultEndDate)]\r\n });\r\n\r\n setMasterData({\r\n ...MasterData,\r\n lstCompany: response.lstCompany,\r\n lstCompanyCSR: response.lstCompanyCSR,\r\n lstEventGroup: response.lstEventGroup,\r\n lstArea: response.lstArea,\r\n lstEventTypeData: []\r\n });\r\n // LoadAear(response.nDefaultEventGroup + \"\", response.nDefaultCompanyID + \"\");\r\n GetData(response.nDefaultCompanyID, response.nDefaultEventGroup, [], [], new Date(response.dDefaultStartDate), new Date(response.dDefaultEndDate));\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n const GetData = async (nCompanyID, nEventGroupID, lstAreaID, lstEventType, sStartDate, sEndDate) => {\r\n setselectEventGroup(+nEventGroupID);\r\n setselectDate({ ...selectDate, startDate: dateFormat(sStartDate, \"dd/mm/yyyy\"), endDate: dateFormat(sEndDate, \"dd/mm/yyyy\") })\r\n let obj = {\r\n 'nCompanyID': nCompanyID,\r\n 'nEventGroupID': nEventGroupID,\r\n 'lstAreaID': lstAreaID.length > 0 ? new LINQ(lstAreaID).Select(s => (+s)).ToArray() : null,\r\n 'lstEventType': lstEventType.length > 0 ? new LINQ(lstEventType).Select(s => (+s)).ToArray() : null,\r\n 'sStartDate': sStartDate != null ? dateFormat(sStartDate, \"dd/mm/yyyy\") : \"\",\r\n 'sEndDate': sEndDate != null ? dateFormat(sEndDate, \"dd/mm/yyyy\") : \"\",\r\n };\r\n setcFilterData(obj);\r\n setisShoweExport(false);\r\n await AxiosPost(sController + \"/GetByEventType\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setlstByEventType(response.cByEventType);\r\n setlTableEventType(new LINQ(response.cResoltByTable.lstTableEventType).ToArray());\r\n \r\n setlTableSummaryEventReport(response.cResoltByTable.lstTableSummaryEventReport);\r\n setlTableSummaryEventReportDatail(response.cResoltByTable.lstTableSummaryEventReportDatail);\r\n setllstTableReporSecurity(response.cResoltByTable.lstTableReporSecurity);\r\n\r\n /// clearInterval(timer);\r\n setInterval(() => {\r\n setisShoweExport(true);\r\n clearInterval();\r\n }, 40000);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n //#region กราฟ\r\n const CharteByEventType = useCallback(() => {\r\n return ( { setImgCharts(e); }} />)\r\n },\r\n [lstByEventType],\r\n )\r\n\r\n const Charts_SummaryByEvent = useCallback(() => {\r\n return ( { setSelectAreaStatistics(e) }}\r\n exportImg={(e) => { setImgChartsSumEvType(e); }} />)\r\n },\r\n [lstByEventType],\r\n )\r\n\r\n const Chats_Statistics = useCallback(() => {\r\n return ( { setImgChartsStatistics(e); }} />)\r\n }, [lstByEventType])\r\n\r\n const Charts_ReportSecurity = useCallback(() => {\r\n return ( { setImgChartsSecurity(e); }} />)\r\n }, [lstByEventType, lstTableReporSecurity])\r\n //#endregion\r\n\r\n const onSave = (values) => {\r\n GetData(+values.nCompanyID, +values.nEventGroupID, values.lstAreaID, values.lstEventType, values.EventDate[0], values.EventDate[1]);\r\n };\r\n //Load AreaData\r\n const LoadAear = async (EventGroupSelect, CompanySelect) => {\r\n if (EventGroupSelect != \"\" && CompanySelect != \"\") {\r\n let qbj = {\r\n nEventGroupID: +EventGroupSelect,\r\n nCompanyID: +CompanySelect,\r\n };\r\n await AxiosPost(sController + \"/GetAear\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n // setMasterData({\r\n // ...MasterData,\r\n // lstCompany: MasterData.lstCompany,\r\n // lstCompanyCSR: MasterData.lstCompanyCSR,\r\n // lstEventGroup: MasterData.lstEventGroup,\r\n // lstArea:response,\r\n // lstEventTypeData:MasterData.lstEventTypeData\r\n // });\r\n setMasterData({\r\n ...MasterData, lstArea: response\r\n })\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n };\r\n\r\n const onEventType = async (lstAreaSelect) => {\r\n if (lstAreaSelect != null) {\r\n let qbj = {\r\n lstAreaID: new LINQ(lstAreaSelect).Select(s => (+s.value)).ToArray()\r\n };\r\n await AxiosPost(sController + \"/GetEventType\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setMasterData({\r\n ...MasterData, lstEventTypeData: response\r\n })\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n };\r\n const exportExcel = () => {\r\n // BlockUI();\r\n // setInterval(() => {\r\n // clearInterval();\r\n let obj = {\r\n 'cFilterData': cFilterData,\r\n 'sImgsImgChartsEvType': sImgChartsEvType,\r\n 'sImgChartsSumEvType': sImgChartsSumEvType,\r\n 'sImgChartsSecurity': sImgChartsSecurity,\r\n 'sImgChartsStatistics': sImgChartsStatistics,\r\n 'lstTableEventType': lstTableEventType,\r\n 'lstTableSummaryEventReport': lstTableSummaryEventReport,\r\n 'lstTableSummaryEventReportDatail': lstTableSummaryEventReportDatail,\r\n 'lstTableReporSecurity': lstTableReporSecurity,\r\n 'lstSelectAreaID': SelectAreaStatistics\r\n };\r\n AxiosPostExportFile(sController + \"/ExportExcel\", obj, \"Report_Event_\" + (dateFormat(new Date(), \"ddmmyyyyHHMM\")) + \".xlsx\", () => { }, BlockUI, UnBlockUI);\r\n // }, 10000);\r\n };\r\n const exportPDF = () => {\r\n\r\n let obj = {\r\n 'cFilterData': cFilterData,\r\n 'sImgsImgChartsEvType': sImgChartsEvType,\r\n 'sImgChartsSumEvType': sImgChartsSumEvType,\r\n 'sImgChartsSecurity': sImgChartsSecurity,\r\n 'sImgChartsStatistics': sImgChartsStatistics,\r\n 'lstTableEventType': lstTableEventType,\r\n 'lstTableSummaryEventReport': lstTableSummaryEventReport,\r\n 'lstTableSummaryEventReportDatail': lstTableSummaryEventReportDatail,\r\n 'lstTableReporSecurity': lstTableReporSecurity,\r\n 'lstSelectAreaID': SelectAreaStatistics\r\n };\r\n AxiosPostExportFile(sController + \"/ExportPDF\", obj, \"Report_Event_\" + (dateFormat(new Date(), \"ddmmyyyyHHMM\")) + \".pdf\", () => { }, BlockUI, UnBlockUI);\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
Event Report รายงานเหตุการณ์
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n {(formProps) => {\r\n return (\r\n
\r\n {\r\n scrollToElementValidate(\"formCreateInfo\");\r\n }}\r\n />\r\n \r\n \r\n {\r\n setMasterData({\r\n ...MasterData, lstArea: []\r\n })\r\n // LoadAear(data, formProps.values.nCompanyID);\r\n formProps.values.nCompanyID = \"\";\r\n formProps.values.lstAreaID = [];\r\n }} />\r\n \r\n \r\n {\r\n LoadAear(formProps.values.nEventGroupID, data);\r\n\r\n }} />\r\n \r\n \r\n {\r\n onEventType(data);\r\n formProps.values.lstEventType = [];\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {isShoweExport &&
\r\n {' '}\r\n \r\n
}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {lstTableEventType.map((el, inex) => {\r\n return (\r\n \r\n )\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n {lstTableSummaryEventReport.map((el, index) => {\r\n let arrTotallCout = new LINQ(lstTableSummaryEventReportDatail).Where(w => w.nAreaID === el.nAreaID).Count()\r\n let arrTotallEID: any = new LINQ(lstTableSummaryEventReportDatail).Where(w => w.nAreaID === el.nAreaID).Select(s => (s.nEventID + \"\")).ToArray();\r\n return (\r\n \r\n \r\n \r\n {lstTableEventType.map((ex: { nEventTypeID: any; }, inexEX: string) => {\r\n let nCout = new LINQ(lstTableSummaryEventReportDatail).Where(w => w.nAreaID === el.nAreaID && w.nEventTypeID === ex.nEventTypeID).Count();\r\n let nEID: any = new LINQ(lstTableSummaryEventReportDatail).Where(w => w.nAreaID === el.nAreaID && w.nEventTypeID === ex.nEventTypeID).Select(s => (s.nEventID + \"\")).ToArray();\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 {lstTableEventType.map((ex: { nEventTypeID: any; }, inexEX: string) => {\r\n let nCout = new LINQ(lstTableSummaryEventReportDatail).Where(w => w.nEventTypeID === ex.nEventTypeID).Count();\r\n let nEID: any = new LINQ(lstTableSummaryEventReportDatail).Where(w => w.nEventTypeID === ex.nEventTypeID).Select(s => (s.nEventID + \"\")).ToArray();\r\n\r\n return ()\r\n })}\r\n\r\n \r\n \r\n\r\n \r\n \r\n
CompanyArea/Sub area{ParseHtml(el.sEventName + \"
(Report)\")}
Total
(Report)
Not Report
(Day)
{el.sCompanyName}{el.sAreaName}\r\n {nCout > 0 ? {nCout} : nCout}\r\n\r\n \r\n {arrTotallCout > 0 ? {arrTotallCout} : arrTotallCout}\r\n {el.nNotReport}
\"Test\"
Total\r\n {nCout > 0 ? {nCout} : nCout}\r\n \r\n {\r\n (new LINQ(lstTableSummaryEventReportDatail).Count()\r\n > 0 ? (lstTableSummaryEventReportDatail).Select(s => (s.nEventID + \"\")).ToArray().join(\",\")) + \"&Mode=\" + Encrypt(\"Report\")}> {new LINQ(lstTableSummaryEventReportDatail).Count()}\r\n : new LINQ(lstTableSummaryEventReportDatail).Count())\r\n }\r\n \r\n {/* {\r\n (new LINQ(lstTableSummaryEventReport).Sum(s => s.nNotReport))\r\n } */}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {selectEventGroup === 3 &&\r\n \r\n \r\n \r\n \r\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 Report;\r\n","import React, { Fragment, useState, useEffect, useCallback } from 'react';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\nimport { Grid } from '@material-ui/core';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\nimport * as am4core from \"@amcharts/amcharts4/core\";\r\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\r\nimport am4themes_animated from \"@amcharts/amcharts4/themes/animated\";\r\nimport am4themes_kelly from \"@amcharts/amcharts4/themes/kelly\";\r\nimport SelectFormItem from '../form/SelectFormItem';\r\nimport { Link } from 'react-router-dom';\r\nimport { Encrypt, AxiosPost, scrollToElementValidate, FnBlock_UI, ResultAPI, MsgValidate, Effect, ParseHtml, AxiosPostExportFile, Decrypt } from '../SysComponent/SystemComponent';\r\nimport { Formik, Form } from \"formik\";\r\nimport { Button, Card, CardBody, Table } from 'reactstrap';\r\nimport { MuiButtonSearch, MuiButtonExport, MuiButtonExportPDF } from '../SysComponent/MaterialComponent'\r\nimport DatePickerRangeFormItem from 'components/form/DatePickerRangeFormItem';\r\nimport { List as LINQ } from 'linqts';\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport * as yup from 'yup';\r\nimport {\r\n useStyles,\r\n MuiTableTableToolbar,\r\n StyledTable_Front,\r\n StyledTableCell_Front,\r\n StyledTableRow_Front,\r\n StyledTableHead_Front,\r\n Order,\r\n PerPageOptions,\r\n StyledTableBody_Front,\r\n stableSort,\r\n getComparator,\r\n MuiRowNoData,\r\n HeadCell,\r\n defaultPage,\r\n} from \"../form/Table/CustomTable\";\r\nimport { TableSortLabel, TablePagination } from \"@material-ui/core\";\r\nam4core.useTheme(am4themes_animated);\r\nam4core.useTheme(am4themes_kelly);\r\nam4core.addLicense(\"CH208466903\");\r\nconst dateFormat = require('dateformat');\r\nconst sController = \"ReportAbnormal\";\r\nconst ReportAbnormal = () => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const [lstByEventType, setlstByEventType] = useState(null as any);\r\n const [lstTableSummaryEventReport, setlTableSummaryEventReport] = useState([] as any);\r\n const [lstTableEventType, setlTableEventType] = useState([] as any);\r\n const [lstTableSummaryEventReportDatail, setlTableSummaryEventReportDatail] = useState([] as any);\r\n const [lstTableReporSecurity, setllstTableReporSecurity] = useState([] as any);\r\n const [selectEventGroup, setselectEventGroup] = useState([] as any[]);\r\n const [selectDate, setselectDate] = useState({ startDate: \"\", endDate: \"\" });\r\n const [MasterData, setMasterData] = React.useState({\r\n lstCompany: [] as any[],\r\n lstCompanyCSR: [] as any[],\r\n lstEventGroup: [] as any[],\r\n lstArea: [] as any[],\r\n lstEventTypeData: [] as any[]\r\n })\r\n const [sTiter, SetsTiter] = useState(\"\");\r\n const [sImgChartsCSR, setsImgChartsCSR] = useState(\"\");\r\n const [sImgChartsOperation, setsImgChartsOperation] = useState(\"\");\r\n const [sImgChartsSecurity, setsImgChartsSecurity] = useState(\"\");\r\n\r\n const [cFilterData, setcFilterData] = useState(null as any);\r\n const [lstReportDetail, setlstReportDetail] = useState([] as any[]);\r\n const [isShoweExport, setisShoweExport] = useState(false);\r\n const [inFromEventReport, setFromEventReport] = useState({\r\n nCompanyID: \"\" as any,\r\n nEventGroupID: [] as any[],\r\n lstAreaID: [] as any[],\r\n lstEventType: [] as any[],\r\n EventDate: [] as any[],\r\n\r\n });\r\n const [cObjData, SetcObjData] = useState({} as any);\r\n const validateOperation = yup.object().shape({\r\n nEventGroupID: yup.array().required(MsgValidate.PleaseSpecify + 'Event Group'),\r\n nCompanyID: yup.string().required(MsgValidate.PleaseSpecify + 'Company')\r\n });\r\n\r\n const LoadData = async () => {\r\n let params = new URLSearchParams(window.location.search);\r\n let AbnormalDate = Decrypt(params.get(\"Abnormal\")) + \"\";\r\n let Mode = Decrypt(params.get(\"Mode\")) + \"\";\r\n console.log(\"AbnormalDate\", AbnormalDate);\r\n\r\n let obj = {\r\n 'sStartDate': AbnormalDate,\r\n 'sEndDate': '',\r\n };\r\n await AxiosPost(sController + \"/LoadData\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setFromEventReport({\r\n ...inFromEventReport,\r\n nCompanyID: response.nDefaultCompanyID + \"\",\r\n nEventGroupID: new LINQ(response.nDefaultEventGroup).Select(s => s + \"\").ToArray() || [],\r\n EventDate: [new Date(response.dDefaultStartDate), new Date(response.dDefaultEndDate)]\r\n });\r\n\r\n setMasterData({\r\n ...MasterData,\r\n lstCompany: response.lstCompany,\r\n lstCompanyCSR: response.lstCompanyCSR,\r\n lstEventGroup: response.lstEventGroup,\r\n lstArea: response.lstArea,\r\n lstEventTypeData: []\r\n });\r\n // LoadAear(response.nDefaultEventGroup + \"\", response.nDefaultCompanyID + \"\");\r\n GetData(response.nDefaultCompanyID, response.nDefaultEventGroup, [], [], new Date(response.dDefaultStartDate), new Date(response.dDefaultEndDate));\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n const GetData = async (nCompanyID, nEventGroupID, lstAreaID, lstEventType, sStartDate, sEndDate) => {\r\n setisShoweExport(false);\r\n setselectEventGroup(nEventGroupID);\r\n setselectDate({ ...selectDate, startDate: dateFormat(sStartDate, \"dd/mm/yyyy\"), endDate: dateFormat(sEndDate, \"dd/mm/yyyy\") })\r\n let obj = {\r\n 'nCompanyID': nCompanyID,\r\n 'nEventGroupID': new LINQ(nEventGroupID || []).Select(s => +s).ToArray(),\r\n 'lstAreaID': lstAreaID.length > 0 ? new LINQ(lstAreaID).Select(s => (+s)).ToArray() : null,\r\n 'lstEventType': lstEventType.length > 0 ? new LINQ(lstEventType).Select(s => (+s)).ToArray() : null,\r\n 'sStartDate': sStartDate != null ? dateFormat(sStartDate, \"dd/mm/yyyy\") : \"\",\r\n 'sEndDate': sEndDate != null ? dateFormat(sEndDate, \"dd/mm/yyyy\") : \"\",\r\n };\r\n setcFilterData(obj);\r\n\r\n await AxiosPost(sController + \"/GetByEventType\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n SetcObjData(response);\r\n setlstByEventType(response.cByEventType);\r\n setlTableEventType(new LINQ(response.cResoltByTable.lstTableEventType).OrderBy(o => o.nColorID).ThenBy(t => t.sEventName).ToArray());\r\n\r\n setlTableSummaryEventReport(response.cResoltByTable.lstTableSummaryEventReport);\r\n setlTableSummaryEventReportDatail(response.cResoltByTable.lstTableSummaryEventReportDatail);\r\n setllstTableReporSecurity(response.cResoltByTable.lstTableReporSecurity);\r\n SetsTiter(response.sTiter);\r\n setlstReportDetail(response.lstReportDetail || [])\r\n /// clearInterval(timer);\r\n setInterval(() => {\r\n setisShoweExport(true);\r\n clearInterval();\r\n }, 40000);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n //Load AreaData\r\n const LoadAear = async (EventGroupSelect, CompanySelect) => {\r\n if (EventGroupSelect != \"\" && CompanySelect != \"\") {\r\n let qbj = {\r\n nEventGroupID: new LINQ(EventGroupSelect || []).Select(s => +s).ToArray(),\r\n nCompanyID: +CompanySelect,\r\n };\r\n await AxiosPost(sController + \"/GetAear\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setMasterData({\r\n ...MasterData, lstArea: response\r\n })\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n };\r\n const onEventType = async (lstAreaSelect) => {\r\n if (lstAreaSelect != null) {\r\n let qbj = {\r\n lstAreaID: new LINQ(lstAreaSelect).Select(s => (+s.value)).ToArray()\r\n };\r\n await AxiosPost(sController + \"/GetEventType\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setMasterData({\r\n ...MasterData, lstEventTypeData: response\r\n })\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n //#region กราฟ\r\n const CharteByEventType_O = useCallback(() => {\r\n return ( { setsImgChartsOperation(e); }} />)\r\n }, [lstByEventType, sTiter])\r\n const CharteByEventType_C = useCallback(() => {\r\n return ( { setsImgChartsCSR(e); }} />)\r\n }, [lstByEventType, sTiter])\r\n const CharteByEventType_S = useCallback(() => {\r\n return ( { setsImgChartsSecurity(e); }} />)\r\n }, [lstByEventType, sTiter])\r\n //#endregion\r\n\r\n const onSave = (values) => {\r\n GetData(+values.nCompanyID, values.nEventGroupID, values.lstAreaID, values.lstEventType, values.EventDate[0], values.EventDate[1]);\r\n };\r\n\r\n const exportExcel = () => {\r\n let obj = cObjData;\r\n cObjData[\"sImgChartsCSR\"] = sImgChartsCSR;\r\n cObjData[\"sImgChartsOperation\"] = sImgChartsOperation;\r\n cObjData[\"sImgChartsSecurity\"] = sImgChartsSecurity;\r\n console.log(\"obj\", obj);\r\n\r\n AxiosPostExportFile(sController + \"/ExportExcel\", obj, \"Report_Abnormal_\" + (dateFormat(new Date(), \"ddmmyyyyHHMM\")) + \".xlsx\", () => { }, BlockUI, UnBlockUI);\r\n };\r\n\r\n const exportPDF = () => {\r\n\r\n let obj = cObjData;\r\n cObjData[\"sImgChartsCSR\"] = sImgChartsCSR;\r\n cObjData[\"sImgChartsOperation\"] = sImgChartsOperation;\r\n cObjData[\"sImgChartsSecurity\"] = sImgChartsSecurity;\r\n AxiosPostExportFile(sController + \"/ExportPDF\", obj, \"Report_Event_\" + (dateFormat(new Date(), \"ddmmyyyyHHMM\")) + \".pdf\", () => { }, BlockUI, UnBlockUI);\r\n };\r\n\r\n const TableSummart = (pro) => {\r\n const { arrTableEventType, arrTableSummaryEventReport, arrTableSummaryEventReportDatail } = pro;\r\n return
\r\n \r\n \r\n \r\n \r\n \r\n {new LINQ(arrTableEventType).OrderBy(w => w.nOrderID).ToArray().map((el, inex) => {\r\n return (\r\n \r\n )\r\n })}\r\n \r\n \r\n \r\n \r\n {new LINQ(arrTableSummaryEventReport).OrderBy(o => o.nOrderComID).ThenBy(t => t.nOrderAreaID)\r\n .ThenBy(t => t.nOrderSunAreaID).ToArray().map((el, index) => {\r\n let arrTotallCout = new LINQ(arrTableSummaryEventReportDatail).Where(w => w.nAreaID === el.nAreaID).Count()\r\n let arrTotallEID: any = new LINQ(arrTableSummaryEventReportDatail).Where(w => w.nAreaID === el.nAreaID).Select(s => (s.nEventID + \"\")).ToArray();\r\n return (\r\n \r\n \r\n \r\n {new LINQ(arrTableEventType).OrderBy(w => w.nOrderID).ToArray().map((ex, inexEX) => {\r\n let nCout = new LINQ(arrTableSummaryEventReportDatail).Where(w => w.nAreaID === el.nAreaID && w.nEventTypeID === ex.nEventTypeID).Count();\r\n let nEID: any = new LINQ(arrTableSummaryEventReportDatail).Where(w => w.nAreaID === el.nAreaID && w.nEventTypeID === ex.nEventTypeID).Select(s => (s.nEventID + \"\")).ToArray();\r\n return ()\r\n })}\r\n\r\n \r\n\r\n \r\n );\r\n })}\r\n \r\n \r\n {new LINQ(arrTableEventType).OrderBy(w => w.nOrderID).ToArray().map((ex, inexEX) => {\r\n let nCout = new LINQ(arrTableSummaryEventReportDatail).Where(w => w.nEventTypeID === ex.nEventTypeID).Count();\r\n let nEID: any = new LINQ(arrTableSummaryEventReportDatail).Where(w => w.nEventTypeID === ex.nEventTypeID).Select(s => (s.nEventID + \"\")).ToArray();\r\n\r\n return ()\r\n })}\r\n\r\n \r\n\r\n\r\n \r\n \r\n
CompanyArea/Sub area{ParseHtml(el.sEventName + \"
(Report)\")}
Total
(Report)
{el.sCompanyName}{el.sAreaName}\r\n {nCout > 0 ? {nCout} : nCout}\r\n\r\n \r\n {arrTotallCout > 0 ? {arrTotallCout} : arrTotallCout}\r\n
Total\r\n {nCout > 0 ? {nCout} : nCout}\r\n \r\n {\r\n (new LINQ(arrTableSummaryEventReportDatail).Count()\r\n > 0 ? (arrTableSummaryEventReportDatail).Select(s => (s.nEventID + \"\")).ToArray().join(\",\")) + \"&Mode=\" + Encrypt(\"Report\")}> {new LINQ(arrTableSummaryEventReportDatail).Count()}\r\n : new LINQ(arrTableSummaryEventReportDatail).Count())\r\n }\r\n
\r\n
\r\n\r\n };\r\n\r\n const TableDetail = (pro) => {\r\n const { mode = 1, rowsData = [] } = pro;\r\n const classes = useStyles();\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(defaultPage);\r\n const [order, setOrder] = React.useState(\"desc\");\r\n const [orderBy, setOrderBy] = React.useState(\"dEventDate\");\r\n\r\n const getHearTable = () => {\r\n return headCellsMode_1;\r\n };\r\n const headCellsMode_1: HeadCell[] = [\r\n {\r\n id: \"sEventDate\",\r\n numeric: false,\r\n disablePadding: false,\r\n label: \"Event Date\",\r\n width: 10,\r\n isSort: false,\r\n },\r\n {\r\n id: \"sCompanyName\",\r\n numeric: false,\r\n disablePadding: false,\r\n label: \"Company\",\r\n width: 10,\r\n isSort: false,\r\n },\r\n {\r\n id: \"sAreaAndSubAreaName\",\r\n numeric: false,\r\n disablePadding: false,\r\n label: \"Area/Sub Area\",\r\n width: 10,\r\n isSort: false,\r\n },\r\n {\r\n id: \"sEventTypeName\",\r\n numeric: false,\r\n disablePadding: false,\r\n label: \"Event Type\",\r\n width: 15,\r\n isSort: false,\r\n },\r\n {\r\n id: \"sRepoterName\",\r\n numeric: false,\r\n disablePadding: false,\r\n label: \"Repoter\",\r\n width: 15,\r\n isSort: false,\r\n }, {\r\n id: \"sReportingDate\",\r\n numeric: false,\r\n disablePadding: false,\r\n label: \"Reporting Date\",\r\n width: 15,\r\n isSort: false,\r\n },\r\n {\r\n id: \"sDescription\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Description\",\r\n width: 20,\r\n isSort: false,\r\n },\r\n ];\r\n const handleRequestSort = (\r\n event: React.MouseEvent,\r\n property: keyof any\r\n ) => {\r\n const isAsc = orderBy === property && order === \"asc\";\r\n setOrder(isAsc ? \"desc\" : \"asc\");\r\n setOrderBy(property);\r\n };\r\n const createSortHandler = (property) => (\r\n event: React.MouseEvent\r\n ) => {\r\n handleRequestSort(event, property);\r\n };\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (\r\n event: React.ChangeEvent\r\n ) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n return rowsData.length > 0 ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n );\r\n };\r\n return \r\n \r\n \r\n \r\n {getHearTable().length > 0 &&\r\n getHearTable().map((headCell) => (\r\n \r\n {headCell.isSort ? (\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === \"desc\"\r\n ? \"sorted descending\"\r\n : \"sorted ascending\"}\r\n \r\n ) : null}\r\n \r\n ) : (\r\n headCell.label\r\n )}\r\n \r\n ))}\r\n \r\n \r\n \r\n {rowsData.length > 0 ? (\r\n stableSort(new LINQ(rowsData).OrderBy(o => o.nCompanyOrderID).ThenBy(t => t.nAreaOrderID)\r\n .ThenBy(t => t.nSubAreaOrderID).ThenBy(t => t.nEventTypeOrderID).ToArray(), getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((item, index) => {\r\n return (\r\n \r\n \r\n {item.sEventDate}\r\n \r\n \r\n {item.sCompanyName}\r\n \r\n \r\n {item.sAreaAndSubAreaName}\r\n \r\n \r\n {item.sEventTypeName}\r\n \r\n \r\n {item.sRepoterName}\r\n \r\n \r\n {item.sReportingDate}\r\n \r\n \r\n {item.sDescription}\r\n \r\n \r\n );\r\n })\r\n ) : (\r\n \r\n {\" \"}\r\n No Data\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n }\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n
\r\n
Event Report รายงานเหตุการณ์ Abnormal
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n {(formProps) => {\r\n return (\r\n
\r\n {\r\n scrollToElementValidate(\"formCreateInfo\");\r\n }}\r\n />\r\n \r\n \r\n {\r\n formProps.values.nCompanyID = \"\";\r\n formProps.values.lstAreaID = [];\r\n setMasterData({\r\n ...MasterData, lstArea: []\r\n })\r\n }} />\r\n \r\n \r\n f == 1).length == 1 ? (\r\n MasterData.lstCompany || []\r\n )\r\n : new LINQ(MasterData.lstCompany || []).Where(w => w.sMode1 == \"N\").ToArray()\r\n }\r\n onSetSelect={(fl, data) => {\r\n formProps.values.lstAreaID = [];\r\n LoadAear(formProps.values.nEventGroupID, data);\r\n }} />\r\n \r\n \r\n {\r\n\r\n onEventType(data);\r\n formProps.values.lstEventType = [];\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {isShoweExport &&
\r\n {' '}\r\n \r\n
}\r\n
\r\n
\r\n
\r\n\r\n {(cObjData.lstEventGroupID || []).filter(f => f == 2).length > 0 && \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n style={{ backgroundColor: \"rgb(58,61,92)\", color: \"#fff\" }}\r\n >\r\n OPERATION\r\n \r\n \r\n
\r\n \r\n f.nEventGroup == 2)}\r\n arrTableSummaryEventReport={lstTableSummaryEventReport.filter(f => f.nEventGroup == 2)}\r\n arrTableSummaryEventReportDatail={lstTableSummaryEventReportDatail.filter(f => f.nEventGroup == 2)} />\r\n \r\n \r\n f.nEventGroup == 2) || []} />\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
}\r\n\r\n {(cObjData.lstEventGroupID || []).filter(f => f == 3).length > 0 && \r\n }\r\n aria-controls=\"panel2a-content\"\r\n id=\"panel2a-header\"\r\n style={{ backgroundColor: \"rgb(150,90,79)\", color: \"#fff\" }}\r\n >\r\n SECURITY\r\n \r\n \r\n
\r\n \r\n f.nEventGroup == 3)}\r\n arrTableSummaryEventReport={lstTableSummaryEventReport.filter(f => f.nEventGroup == 3)}\r\n arrTableSummaryEventReportDatail={lstTableSummaryEventReportDatail.filter(f => f.nEventGroup == 3)} />\r\n \r\n \r\n f.nEventGroup == 3) || []} />\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n }\r\n {(cObjData.lstEventGroupID || []).filter(f => f == 1).length > 0 && \r\n }\r\n aria-controls=\"panel3a-content\"\r\n id=\"panel3a-header\"\r\n style={{ backgroundColor: \"rgb(0,120,144)\", color: \"#fff\" }}\r\n >\r\n CSR\r\n \r\n \r\n
\r\n \r\n f.nEventGroup == 1)}\r\n arrTableSummaryEventReport={lstTableSummaryEventReport.filter(f => f.nEventGroup == 1)}\r\n arrTableSummaryEventReportDatail={lstTableSummaryEventReportDatail.filter(f => f.nEventGroup == 1)} />\r\n \r\n \r\n f.nEventGroup == 1) || []} />\r\n \r\n \r\n \r\n \r\n
\r\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 ReportAbnormal;\r\n\r\nconst Charts_ByEventType = (props) => {\r\n const { data, sTiter, exportImg, nameCharts, EventGroupID } = props;\r\n const [Conwidtht, setConwidtht] = React.useState(\"100%\");\r\n const chartData = [] as any[];\r\n const [isShow, SetIshow] = React.useState(false);\r\n useEffect(() => {\r\n\r\n if (data != null) {\r\n (data.lstAreaAll || []).filter(w => w.nEventGroup == EventGroupID).forEach(f => {\r\n let objData = { 'AreaName': f.sAreaName };\r\n (f.lstByEventTypeDataDetail || []).forEach(x => {\r\n objData[x.nEventTypeName] = x.nCount;\r\n });\r\n chartData.push(objData);\r\n });\r\n if (chartData.length == 1) {\r\n chartData.push({'AreaName':\"\",\"\":''});\r\n chartData.push({'AreaName':\" \",\"\":''});\r\n chartData.push({'AreaName':\" \",\"\":''});\r\n chartData.push({'AreaName':\" \",\"\":''});\r\n chartData.push({'AreaName':\" \",\"\":''});\r\n chartData.push({'AreaName':\" \",\"\":''});\r\n chartData.push({'AreaName':\" \",\"\":''});\r\n chartData.push({'AreaName':\" \",\"\":''});\r\n } else if (chartData.length == 2) {\r\n chartData.push({'AreaName':\"\",\"\":''});\r\n chartData.push({'AreaName':\" \",\"\":''});\r\n chartData.push({'AreaName':\" \",\"\":''});\r\n } else if (chartData.length < 5) {\r\n chartData.push({'AreaName':\"\",\"\":''});\r\n chartData.push({'AreaName':\" \",\"\":''});\r\n chartData.push({'AreaName':\" \",\"\":''});\r\n }\r\n let chart = am4core.create(\"chartdiv\" + (nameCharts || \"\"), am4charts.XYChart);\r\n let arrColor = [\"#FF0000\",\"#FF6600\",'#FF9900','#b36e07','#f59608','#a70909','#9b0000'];\r\n chart.colors.list = arrColor.map((el, index) => { return am4core.color(el) });\r\n\r\n chart.responsive.enabled = true;\r\n // Add data\r\n chart.data = chartData;\r\n // Create axes\r\n var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\r\n categoryAxis.dataFields.category = \"AreaName\";\r\n categoryAxis.renderer.grid.template.location = 0;\r\n categoryAxis.renderer.minGridDistance = 20;\r\n\r\n\r\n\r\n var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\r\n valueAxis.title.text = \" Report Amount\";\r\n valueAxis.min = 0;\r\n valueAxis.maxPrecision = 0;\r\n // Create series\r\n (new LINQ(data.lstByEventType || []).Select(s => ({ nEventGroup: s.nEventGroup, nEventTypeName: s.nEventTypeName,nEventOrderID:s.nEventOrderID}))\r\n .Distinct().OrderBy(o=> o.nEventOrderID).ToArray()).filter(f => f.nEventGroup == EventGroupID).forEach(f => {\r\n var series = chart.series.push(new am4charts.ColumnSeries());\r\n series.dataFields.valueY = f.nEventTypeName;\r\n series.dataFields.categoryX = \"AreaName\";\r\n series.name = f.nEventTypeName;\r\n series.stacked = true;\r\n series.columns.template.tooltipText = \"{name}: [bold]{valueY}[/]\";\r\n\r\n });\r\n var label = categoryAxis.renderer.labels.template;\r\n label.tooltipText = \"{AreaName}\";\r\n label.fontSize = 14;\r\n categoryAxis.events.on(\"sizechanged\", function (ev) {\r\n var axis = ev.target;\r\n var cellWidth = axis.pixelWidth / (axis.endIndex - axis.startIndex);\r\n axis.renderer.labels.template.rotation = -45;\r\n axis.renderer.labels.template.horizontalCenter = \"right\";\r\n axis.renderer.labels.template.verticalCenter = \"top\";//middle\r\n\r\n });\r\n // Add legend\r\n chart.legend = new am4charts.Legend();\r\n //ให้ Lagend อยู่ด้านบน\r\n chart.legend.position = \"top\";\r\n chart.legend.contentAlign = \"center\";\r\n\r\n chart.exporting.getImage(\"png\").then((data) => {\r\n exportImg(data);\r\n });\r\n\r\n }\r\n if (chartData.length > 0) {\r\n SetIshow(true)\r\n } else {\r\n SetIshow(false)\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n
Event Type : {EventGroupID == 2 ? \"Operation\" : EventGroupID == 3 ? \"Security\" : \"CSR\"}
\r\n
{sTiter}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n\r\n};\r\n\r\n","import React, { Fragment, useState, useEffect, useCallback } from \"react\";\r\nimport \"react-draft-wysiwyg/dist/react-draft-wysiwyg.css\";\r\nimport {\r\n Paper,\r\n Grid,\r\n TableContainer,\r\n TableSortLabel,\r\n IconButton,\r\n Typography,\r\n TablePagination,\r\n DialogContent,\r\n DialogActions,\r\n Checkbox,\r\n} from \"@material-ui/core\";\r\nimport {\r\n useStyles,\r\n MuiTableTableToolbar,\r\n StyledTable_Front,\r\n StyledTableCell_Front,\r\n StyledTableRow_Front,\r\n StyledTableHead_Front,\r\n Order,\r\n PerPageOptions,\r\n StyledTableBody_Front,\r\n stableSort,\r\n getComparator,\r\n MuiRowNoData,\r\n HeadCell,\r\n defaultPage,\r\n} from \"../../form/Table/CustomTable\";\r\nimport { Card, CardBody, Table } from \"reactstrap\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport { List as LINQ } from \"linqts\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n Encrypt,\r\n AxiosPost,\r\n scrollToElementValidate,\r\n FnBlock_UI,\r\n ResultAPI,\r\n MsgValidate,\r\n Effect,\r\n ParseHtml,\r\n AxiosPostExportFile,\r\n} from \"../../SysComponent/SystemComponent\";\r\nimport {\r\n EventColorCompronent,\r\n MuiButtonDelete,\r\n MuiButtonSearch,\r\n MuiIconCheckBoxDelete,\r\n MuiButtonApproveFront,\r\n MuiButtonEditeFront,\r\n SecurityLevelColorCompronent,\r\n MuiButtonExport,\r\n} from \"../../SysComponent/MaterialComponent\";\r\nimport EventApprove from \"../EventApprove\";\r\nconst WeeklyReportComponent = (props) => {\r\n const { mode, cData } = props;\r\n const [rowsData, setRowData] = React.useState([] as any[]);\r\n const classes = useStyles();\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(defaultPage);\r\n const [order, setOrder] = React.useState(\"desc\");\r\n const [orderBy, setOrderBy] = React.useState(\"dEventDate\");\r\n\r\n const [lstTableEventType, setlTableEventType] = useState([] as any);\r\n const [lstTableSummaryEventReport, setlTableSummaryEventReport] = useState(\r\n [] as any\r\n );\r\n const [lstEeventRepottData, setlstEeventRepottData] = useState([] as any);\r\n\r\n useEffect(() => {\r\n let nEventGroup = 0;\r\n if (mode === 1) {\r\n nEventGroup = 2;\r\n } else if (mode === 2) {\r\n nEventGroup = 3;\r\n } else if (mode === 3) {\r\n nEventGroup = 1;\r\n }\r\n if (cData != undefined && cData != null) {\r\n if (cData.lstEventType != undefined && cData.lstEventType != null) {\r\n let arr = new LINQ(cData.lstEventType)\r\n .Where((w) => w.nEventGroupID == nEventGroup).OrderBy(w => w.nOrderID)\r\n .ToArray();\r\n\r\n setlTableEventType(arr);\r\n }\r\n\r\n if (\r\n cData.lstSummaryReportData != undefined &&\r\n cData.lstSummaryReportData != null\r\n ) {\r\n let arr = new LINQ(cData.lstSummaryReportData)\r\n .Where((w) => w.nEventGroupID == nEventGroup).OrderBy(w => w.nOrderID)\r\n .ToArray();\r\n setlTableSummaryEventReport(arr);\r\n }\r\n if (\r\n cData.lstEeventRepottData != undefined &&\r\n cData.lstEeventRepottData != null\r\n ) {\r\n let arr = new LINQ(cData.lstEeventRepottData)\r\n .Where((w) => w.nEventGroupID == nEventGroup)\r\n .OrderBy(e=> e.nCompanyOrderID).ThenBy(w=> w.nAreaOrderID)\r\n .ThenBy(w=> w.nSubAreaOrderID).ThenBy(w=> w.nEventTypeOrderID)\r\n .ToArray();\r\n setlstEeventRepottData(arr);\r\n setRowData(arr);\r\n }\r\n //lstEeventRepottData\r\n }\r\n }, []);\r\n const handleRequestSort = (\r\n event: React.MouseEvent,\r\n property: keyof any\r\n ) => {\r\n const isAsc = orderBy === property && order === \"asc\";\r\n setOrder(isAsc ? \"desc\" : \"asc\");\r\n setOrderBy(property);\r\n };\r\n const headCellsMode_1: HeadCell[] = [\r\n {\r\n id: \"sCompanyName\",\r\n numeric: true,\r\n disablePadding: true,\r\n label: \"Company\",\r\n width: 5,\r\n isSort: true,\r\n },\r\n {\r\n id: \"sAreaName\",\r\n numeric: true,\r\n disablePadding: true,\r\n label: \"Area/Sub Area\",\r\n width: 10,\r\n isSort: true,\r\n },\r\n {\r\n id: \"\",\r\n numeric: false,\r\n disablePadding: true,\r\n label: \"Status\",\r\n width: 9,\r\n isSort: false,\r\n },\r\n {\r\n id: \"sEventTypeName\",\r\n numeric: false,\r\n disablePadding: true,\r\n label: \"Event Type\",\r\n width: 15,\r\n isSort: true,\r\n },\r\n {\r\n id: \"sDescription\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Description\",\r\n width: 20,\r\n isSort: false,\r\n },\r\n ];\r\n\r\n const headCellsMode_2: HeadCell[] = [\r\n {\r\n id: \"sCompanyName\",\r\n numeric: true,\r\n disablePadding: true,\r\n label: \"Company\",\r\n width: 5,\r\n isSort: true,\r\n },\r\n {\r\n id: \"sAreaName\",\r\n numeric: true,\r\n disablePadding: true,\r\n label: \"Area/Sub Area\",\r\n width: 10,\r\n isSort: true,\r\n },\r\n {\r\n id: \"\",\r\n numeric: false,\r\n disablePadding: true,\r\n label: \"Security Level\",\r\n width: 9,\r\n isSort: false,\r\n },\r\n {\r\n id: \"sEventTypeName\",\r\n numeric: false,\r\n disablePadding: true,\r\n label: \"Event Type\",\r\n width: 15,\r\n isSort: true,\r\n },\r\n {\r\n id: \"\",\r\n numeric: false,\r\n disablePadding: true,\r\n label: \"Status\",\r\n width: 9,\r\n isSort: false,\r\n },\r\n {\r\n id: \"sDescription\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Description\",\r\n width: 20,\r\n isSort: false,\r\n },\r\n ];\r\n\r\n const headCellsMode_3: HeadCell[] = [\r\n {\r\n id: \"sCompanyName\",\r\n numeric: true,\r\n disablePadding: true,\r\n label: \"CSR Area\",\r\n width: 5,\r\n isSort: true,\r\n },\r\n {\r\n id: \"sAreaName\",\r\n numeric: true,\r\n disablePadding: true,\r\n label: \"Area/Sub Area\",\r\n width: 10,\r\n isSort: true,\r\n },\r\n {\r\n id: \"\",\r\n numeric: false,\r\n disablePadding: true,\r\n label: \"Status\",\r\n width: 9,\r\n isSort: false,\r\n },\r\n {\r\n id: \"sEventTypeName\",\r\n numeric: false,\r\n disablePadding: true,\r\n label: \"Event Type\",\r\n width: 15,\r\n isSort: true,\r\n },\r\n {\r\n id: \"sDescription\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Description\",\r\n width: 20,\r\n isSort: false,\r\n },\r\n ];\r\n const createSortHandler = (property) => (\r\n event: React.MouseEvent\r\n ) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n const getHearTable = () => {\r\n if (mode === 1) {\r\n return headCellsMode_1;\r\n } else if (mode === 2) {\r\n return headCellsMode_2;\r\n } else if (mode === 3) {\r\n return headCellsMode_3;\r\n } else {\r\n return [] as HeadCell[];\r\n }\r\n };\r\n\r\n //#region set Pagination\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (\r\n event: React.ChangeEvent\r\n ) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n return rowsData.length > 0 ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n );\r\n };\r\n\r\n //#endregion\r\n\r\n const [open, setOpen] = React.useState({\r\n isShow: false,\r\n EventID: null,\r\n Mode: \"\",\r\n });\r\n\r\n const handleClose = (value: string) => {\r\n setOpen({ ...open, isShow: false, EventID: null, Mode: \"\" });\r\n };\r\n\r\n const handleShew = (EventID, Mode) => {\r\n setOpen({ ...open, isShow: true, EventID: EventID, Mode: Mode });\r\n };\r\n const EventApproveReport = React.useCallback(() => {\r\n return (\r\n {\r\n handleClose(e);\r\n }}\r\n title={\r\n open.Mode === \"Approve\"\r\n ? \"Approve Data\"\r\n : open.Mode === \"View\"\r\n ? \"Detail\"\r\n : \"Edit Data\"\r\n }\r\n eventID={open.EventID}\r\n Mode={open.Mode}\r\n />\r\n );\r\n }, [open]);\r\n\r\n return (\r\n \r\n \r\n \r\n {mode !== 3 && (\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Company\r\n \r\n \r\n Area\r\n \r\n {lstTableEventType.map((el, inex) => {\r\n return (\r\n \r\n {ParseHtml(el.sEventTypeName + \"
(Report)\")}\r\n \r\n );\r\n })}\r\n \r\n Not Report
\r\n (Area)\r\n \r\n \r\n \r\n \r\n {lstTableSummaryEventReport.map((el, index) => {\r\n return (\r\n \r\n \r\n {el.sCompanyName}\r\n \r\n \r\n {el.nAreaCount}\r\n \r\n {lstTableEventType.map(\r\n (ex: { nEventTypeID: any }, inexEX: string) => {\r\n let nCout = new LINQ(lstEeventRepottData)\r\n .Where(\r\n (w) =>\r\n w.nCompanyID === el.nCompanyID &&\r\n w.nEventTypeID === ex.nEventTypeID\r\n )\r\n .Count();\r\n let nEID: any = new LINQ(lstEeventRepottData)\r\n .Where(\r\n (w) =>\r\n w.nCompanyID === el.nCompanyID &&\r\n w.nEventTypeID === ex.nEventTypeID\r\n )\r\n .Select((s) => s.nEventID + \"\")\r\n .ToArray();\r\n return (\r\n \r\n {nCout > 0 ? (\r\n \r\n {\" \"}\r\n {nCout}\r\n \r\n ) : (\r\n nCout\r\n )}\r\n \r\n );\r\n }\r\n )}\r\n \r\n {el.nNotRepor}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n
\r\n
\r\n
\r\n )}\r\n \r\n \r\n \r\n \r\n {getHearTable().length > 0 &&\r\n getHearTable().map((headCell) => (\r\n \r\n {headCell.isSort ? (\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === \"desc\"\r\n ? \"sorted descending\"\r\n : \"sorted ascending\"}\r\n \r\n ) : null}\r\n \r\n ) : (\r\n headCell.label\r\n )}\r\n \r\n ))}\r\n \r\n \r\n \r\n {rowsData.length > 0 ? (\r\n stableSort(rowsData, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((item, index) => {\r\n return (\r\n \r\n \r\n {item.sCompanyName}\r\n \r\n \r\n {item.sAreaName}\r\n \r\n {mode != 2 && (\r\n \r\n \r\n \r\n )}\r\n {mode === 2 && (\r\n \r\n \r\n \r\n )}\r\n \r\n {\r\n handleShew(item.nEventID, \"View\");\r\n }}\r\n style={{ textTransform: \"none\", textAlign: \"left\" }}\r\n >\r\n {item.sEventTypeName}\r\n \r\n \r\n {mode === 2 && (\r\n \r\n \r\n \r\n )}\r\n \r\n {item.sDescription}\r\n \r\n \r\n );\r\n })\r\n ) : (\r\n \r\n {\" \"}\r\n No Data\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\nexport default WeeklyReportComponent;\r\n","import React, { Fragment, useState, useEffect, useCallback } from \"react\";\r\nimport \"react-draft-wysiwyg/dist/react-draft-wysiwyg.css\";\r\nimport { Grid } from \"@material-ui/core\";\r\nimport SelectFormItem from \"../form/SelectFormItem\";\r\nimport \"react-draft-wysiwyg/dist/react-draft-wysiwyg.css\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n Encrypt,\r\n AxiosPost,\r\n scrollToElementValidate,\r\n FnBlock_UI,\r\n ResultAPI,\r\n MsgValidate,\r\n Decrypt,\r\n ParseHtml,\r\n AxiosPostExportFile,\r\n} from \"../SysComponent/SystemComponent\";\r\nimport { Formik, Form } from \"formik\";\r\nimport { Button, Card, CardBody, Table } from \"reactstrap\";\r\nimport {\r\n MuiButtonSearch,\r\n MuiButtonExport,\r\n MuiButtonExportPDF,\r\n} from \"../SysComponent/MaterialComponent\";\r\nimport { List as LINQ } from \"linqts\";\r\nimport * as yup from \"yup\";\r\n\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport {\r\n useStyles,\r\n MuiTableTableToolbar,\r\n StyledTable_Front,\r\n StyledTableCell_Front,\r\n StyledTableRow_Front,\r\n StyledTableHead_Front,\r\n Order,\r\n PerPageOptions,\r\n StyledTableBody_Front,\r\n stableSort,\r\n getComparator,\r\n MuiRowNoData,\r\n HeadCell,\r\n defaultPage,\r\n} from \"../form/Table/CustomTable\";\r\nimport WeeklyReportComponent from \"../General/ReportComponent/WeeklyReportComponent\";\r\n\r\nconst dateFormat = require(\"dateformat\");\r\nconst sController = \"WeeklyReport\";\r\nconst ReportWeekly = () => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const [cData, setcData] = React.useState(null as any);\r\n const [sDateTo, setDateTo] = React.useState(\"\");\r\n const [isShoweExport, setisShoweExport] = useState(false);\r\n const [lstEventGroupID, setlstEventGroupID] = React.useState([] as any[]);\r\n const [dAsof, setdAsof] = React.useState(null as any);\r\n\r\n const LoadData = () => {\r\n let params = new URLSearchParams(window.location.search);\r\n let WeeklyDate = Decrypt(params.get(\"Weekly\")) + \"\";\r\n let Mode = Decrypt(params.get(\"Mode\")) + \"\";\r\n\r\n let obj = {\r\n sMode: \"1\",\r\n sStartDate: WeeklyDate,\r\n sEndDate: \"\",\r\n };\r\n setisShoweExport(false);\r\n AxiosPost(\r\n sController + \"/LoadData\",\r\n obj,\r\n (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setdAsof(response.dAsof);\r\n setDateTo(response.sStartDate + \" - \" + response.sEndDate);\r\n setlstEventGroupID(response.lstEventGroupID);\r\n\r\n setcData(response);\r\n /// clearInterval(timer);\r\n setInterval(() => {\r\n setisShoweExport(true);\r\n clearInterval();\r\n }, 40000);\r\n });\r\n },\r\n () => { },\r\n BlockUI,\r\n UnBlockUI\r\n );\r\n };\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n const OWeeklyReport = useCallback(() => {\r\n return ;\r\n }, [cData]);\r\n const SWeeklyReport = useCallback(() => {\r\n return ;\r\n }, [cData]);\r\n const CWeeklyReport = useCallback(() => {\r\n return ;\r\n }, [cData]);\r\n\r\n const exportExcel = () => {\r\n let obj = cData;\r\n AxiosPostExportFile(\r\n sController + \"/ExportExcel\",\r\n obj,\r\n \"Report_Event_Weekly_\" + dateFormat(new Date(), \"ddmmyyyyHHMM\") + \".xlsx\",\r\n () => { },\r\n BlockUI,\r\n UnBlockUI\r\n );\r\n };\r\n const exportPDF = () => {\r\n let obj = cData;\r\n AxiosPostExportFile(\r\n sController + \"/ExportPDF\",\r\n obj,\r\n \"Report_Event_Weekly_\" + dateFormat(new Date(), \"ddmmyyyyHHMM\") + \".pdf\",\r\n () => { },\r\n BlockUI,\r\n UnBlockUI\r\n );\r\n };\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Event Report รายงานเหตุการณ์ ประจําสัปดาห์{\" \"}\r\n {sDateTo}{\" \"} {dAsof != null && \"(As of \" + dateFormat(dAsof, \"dd/mm/yyyy\")+\")\"}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {lstEventGroupID.length > 0 &&
\r\n {isShoweExport && (\r\n
\r\n {\" \"}\r\n \r\n
\r\n )}\r\n
\r\n }\r\n \r\n {lstEventGroupID.filter(f => f === 2).length > 0 &&\r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n style={{ backgroundColor: \"rgb(58,61,92)\", color: \"#fff\" }}\r\n >\r\n OPERATION\r\n \r\n \r\n \r\n \r\n \r\n }\r\n {lstEventGroupID.filter(f => f === 3).length > 0 && \r\n }\r\n aria-controls=\"panel2a-content\"\r\n id=\"panel2a-header\"\r\n style={{ backgroundColor: \"rgb(150,90,79)\", color: \"#fff\" }}\r\n >\r\n SECURITY\r\n \r\n \r\n \r\n \r\n \r\n }\r\n {lstEventGroupID.filter(f => f === 1).length > 0 &&\r\n \r\n }\r\n aria-controls=\"panel3a-content\"\r\n id=\"panel3a-header\"\r\n style={{ backgroundColor: \"rgb(0,120,144)\", color: \"#fff\" }}\r\n >\r\n CSR\r\n \r\n \r\n \r\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 ReportWeekly;\r\n","import React, { Fragment, useEffect } from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Link } from 'react-router-dom';\r\nimport Card from '@material-ui/core/Card';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport { Grid } from '@material-ui/core';\r\nconst useStyles = makeStyles((theme) => ({\r\n button: {\r\n // margin: theme.spacing(1),\r\n width: \"100%\",\r\n opacity: 0.9,\r\n },\r\n pBody: {\r\n // position: \"absolute\",\r\n top: \"48%\",\r\n left: \"25%\",\r\n },\r\n}));\r\nexport const Logout = () => {\r\n const classes = useStyles();\r\n const REACT_APP_API_URL_File = process.env.REACT_APP_API_URL;\r\n const toAD = () => {\r\n window.location.href = window.location.origin + \"/AD/LoginAD.aspx\";\r\n };\r\n\r\n const toADFS = () => {\r\n window.location.href = window.location.origin + REACT_APP_API_URL_File + \"LoginADFS/Account/LoginADPTT\";\r\n };\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n

Login By User Company

\r\n \r\n\r\n
\r\n \r\n PTT\r\n {' '}\r\n {/* ADFS */}\r\n {/* \r\n PTT\r\n {' '} */}\r\n

\r\n \r\n \r\n PTTEP\r\n \r\n {' '}\r\n
\r\n
\r\n
\r\n {/* \r\n \r\n

Login by Azure

\r\n \r\n
\r\n \r\n \r\n PTTEP\r\n \r\n {' '}\r\n
\r\n
\r\n
*/}\r\n {/* \r\n \r\n

Login By User Company

\r\n \r\n
\r\n \r\n Login AD\r\n {' '}\r\n\r\n

\r\n

สำหรับบริษัท

\r\n

- PTT

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

Login by System

\r\n \r\n
\r\n \r\n \r\n Login\r\n \r\n \r\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 Logout;","import React, { Fragment, useState, useEffect } from 'react';\r\nimport LockIcon from '@material-ui/icons/Lock';\r\nimport { Button} from 'reactstrap';\r\nimport InputAdornment from '@material-ui/core/InputAdornment/InputAdornment';\r\nimport { FnBlock_UI, AxiosPost, ResultAPI, Process_System} from './SysComponent/SystemComponent';\r\nimport { Formik, Form } from \"formik\";\r\nimport * as yup from 'yup';\r\nimport InputFormItemLogin from './form/InputFormItemLogin'\r\nimport { AccountCircle } from '@material-ui/icons';\r\nimport { Link } from 'react-router-dom';\r\nimport SelectFormItemLogin from '../components/form/SelectFormItemLogin';\r\nimport BusinessIcon from '@material-ui/icons/Business';\r\nimport { List as LINQ } from 'linqts';\r\nconst sController = \"Login\";\r\n\r\nconst LoginBypass = () => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const [lstCompany, setlstCompany] = useState([] as any[]);\r\n\r\n const fnInitialDataUser = {\r\n txtUserID: \"\",\r\n txtPassword: \"\",\r\n txtCompany: \"\",\r\n };\r\n\r\n \r\n const validateUserInfo = yup.object().shape({\r\n txtCompany: yup.string().required('Please Specify Company'),\r\n txtUserID: yup.string().required('Please Specify Username'),\r\n txtPassword: yup.string().required('Please Specify Password'),\r\n });\r\n\r\n const onLoad = () => {\r\n AxiosPost(sController + \"/onLoad\", {}, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setlstCompany(response.lstCompyne);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n useEffect(() => {\r\n onLoad();\r\n }, []);\r\n\r\n const onLogin = (formProps) => {\r\n let obj = {\r\n 'sUsername': formProps.txtUserID,\r\n 'sPassword': formProps.txtPassword,\r\n 'nCompanyID': +formProps.txtCompany,\r\n 'sMode': \"BYPASS\"\r\n };\r\n BlockUI();\r\n\r\n AxiosPost(sController + \"/Login\", obj, (response) => {\r\n UnBlockUI();\r\n if (response.sStatus === Process_System.process_Success) {\r\n var arr = new LINQ(response.lstGroupUser).ToList();\r\n if (arr.Any(a => a.nGroupID === 4)) {\r\n var elLink = document.getElementById(\"lnkTo\") as any;\r\n if (elLink)\r\n elLink.click();\r\n } else if (arr.Any(a => a.nGroupID === 5)) {\r\n var elLink = document.getElementById(\"lnkToEventToday\") as any;\r\n if (elLink)\r\n elLink.click();\r\n } else {\r\n var elLink = document.getElementById(\"lnkToEventRecord\") as any;\r\n if (elLink)\r\n elLink.click();\r\n }\r\n }\r\n });\r\n };\r\n\r\n const FimLogin = React.useCallback(() => {\r\n return (\r\n \r\n {(formProps) => {\r\n return (\r\n
\r\n
SIGN IN
\r\n
\r\n \r\n \r\n \r\n } />\r\n
\r\n
\r\n \r\n \r\n \r\n } />\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n } />\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n }\r\n \r\n )\r\n }, [lstCompany]);\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\nexport default LoginBypass;\r\n\r\n","import React, { Fragment, useEffect, useState } from \"react\";\r\nimport { AuthenticationContext, runWithAdal, AdalConfig } from \"react-adal\";\r\nimport jwt_decode from \"jwt-decode\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n AxiosPost,\r\n Encrypt,\r\n FnBlock_UI,\r\n ResultAPI,\r\n} from \"../SysComponent/SystemComponent\";\r\nimport de from \"date-fns/esm/locale/de/index.js\";\r\nconst sController = \"ConfigAzure_AD\";\r\n\r\nexport const LoginEP = () => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n useEffect(() => {\r\n //console.log(\"window.location.search\", window.location.search);\r\n if (window.location.search && window.location.search != \"\") {\r\n localStorage.setItem(\"search\", window.location.search);\r\n }\r\n OnGetConfigAzueAD();\r\n //onTestAzure();\r\n });\r\n // const [state, setstate] = useState(initialState)\r\n const [lstAD, setlstAD] = useState([] as any[]);\r\n const OnGetConfigAzueAD = () => {\r\n let obj = { sMode: \"AzureAdEP\" };\r\n AxiosPost(\r\n sController + \"/OnGetConfigAzureAD\",\r\n obj,\r\n (response) => {\r\n ResultAPI(true, response, null, () => {\r\n //console.log(\"OnGetConfigAzureAD\", response);\r\n if (response) {\r\n OnSetADAzure(response);\r\n }\r\n });\r\n },\r\n () => { },\r\n BlockUI,\r\n UnBlockUI\r\n );\r\n };\r\n\r\n const OnSetADAzure = (value) => {\r\n const adalConfig: AdalConfig = {\r\n clientId: value.sClientId,\r\n redirectUri: value.sRedirectUri,\r\n instance: value.sInstance,\r\n tenant: value.sTenantId,\r\n popUp: false,\r\n cacheLocation: value.sCacheLocation,\r\n endpoints: {\r\n api: value.api,\r\n },\r\n };\r\n const authContext = new AuthenticationContext(adalConfig);\r\n const getToken = () => authContext.getCachedToken(adalConfig.clientId);\r\n\r\n const headers = { Authorization: `Bearer ${getToken()}` };\r\n\r\n\r\n if (getToken() != null) {\r\n let user = jwt_decode(getToken() || \"\") as any;\r\n if (user.upn != undefined && user.upn != \"\") {\r\n var elLink = document.getElementById(\"lnkTo\") as any;\r\n let obj = { sMode: \"AD\", sEmail: user.upn, nCompanyID: 2 };\r\n\r\n AxiosPost(\"Login\" + \"/LoginAzureAD\", obj, (response) => {\r\n ResultAPI(true, response, null, () => {\r\n console.log(\"LoginAzureAD\", response);\r\n if (response) {\r\n if (elLink) {\r\n var sSearch = localStorage.getItem(\"search\");\r\n if (sSearch && sSearch != \"\") {\r\n var repat = sSearch.replace(\"?\", \"&&\").replace(\"action_\",\"action\");\r\n localStorage.removeItem(\"search\");\r\n var ke = elLink.pathname + \"?strid=\" + (response.sUserName+\"\") + repat;\r\n window.location.href = ke;\r\n } else {\r\n var ke = elLink.pathname + \"?strid=\" + (response.sUserName+\"\");\r\n window.location.href = ke;\r\n }\r\n }\r\n }\r\n });\r\n },\r\n () => { }, BlockUI, UnBlockUI);\r\n\r\n }\r\n }\r\n\r\n if (getToken() == null) {\r\n const DO_NOT_LOGIN = false;\r\n // console.log(\"authContext\", authContext);\r\n\r\n runWithAdal(\r\n authContext,\r\n () => {\r\n require(\"../../indexApp\");\r\n },\r\n DO_NOT_LOGIN\r\n );\r\n }\r\n };\r\n const onTestAzure = () => {\r\n let obj = { sMode: \"AD\", sEmail: \"zEkkapanK@pttep.com\", nCompanyID: 2 };\r\n var elLink = document.getElementById(\"lnkTo\") as any;\r\n\r\n AxiosPost(\r\n \"Login\" + \"/LoginAzureAD\", obj, (response) => {\r\n ResultAPI(true, response, null, () => {\r\n\r\n if (response) {\r\n if (elLink) {\r\n var sSearch = localStorage.getItem(\"search\");\r\n if (sSearch && sSearch != \"\") {\r\n var repat = sSearch.replace(\"?\", \"&&\").replace(\"action_\",\"action\");\r\n localStorage.removeItem(\"search\");\r\n var ke = elLink.pathname + \"?strid=\" + response.sUserName + repat;\r\n window.location.href = ke;\r\n } else {\r\n var ke = elLink.pathname + \"?strid=\" + response.sUserName;\r\n window.location.href = ke;\r\n\r\n }\r\n }\r\n }\r\n });\r\n },\r\n () => { }, BlockUI, UnBlockUI);\r\n }\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\nexport default LoginEP;","import React, { Fragment, useEffect } from 'react';\r\nexport const loginAction = () => {\r\n\r\n // useEffect(() => {\r\n let d = window.location.href + \"Action-Login\"\r\n window.location.href = d;\r\n // });\r\n \r\n return ()\r\n}\r\nexport default loginAction;","import React, { Fragment, useState, useEffect, useCallback } from \"react\";\r\nimport \"react-draft-wysiwyg/dist/react-draft-wysiwyg.css\";\r\nimport { Grid } from \"@material-ui/core\";\r\nimport \"react-draft-wysiwyg/dist/react-draft-wysiwyg.css\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n Encrypt,\r\n FnBlock_UI,\r\n ParseHtml,\r\n} from \"../../SysComponent/SystemComponent\";\r\nimport { Card, CardBody, Table } from \"reactstrap\";\r\nimport { List as LINQ } from \"linqts\";\r\nimport Charts_ByEventType from \"./../ChartsComponent/Charts_ByEventType\";\r\nimport Charts_SummaryByEventType from \"./../ChartsComponent/Charts_SummaryByEventType\";\r\nimport Chats_ReportStatistics from \"./../ChartsComponent/Chats_ReportStatistics\";\r\nimport Chats_Report_Security from \"./../ChartsComponent/Chats_Report_Security\";\r\nconst dateFormat = require('dateformat');\r\nconst MonthlyComponent = (props) => {\r\n const {\r\n mode,\r\n nCompanyID,\r\n cData,\r\n sDate,\r\n setcFilterDataEx,\r\n setImgChartsEx,\r\n setImgChartsSumEvTypeEx,\r\n setImgChartsSecurityEx,\r\n setImgChartsStatisticsEx,\r\n setlTableEventTypeEx,\r\n setlTableSummaryEventReportEx,\r\n setlTableSummaryEventReportDatailEx,\r\n setllstTableReporSecurityEx,\r\n setSelectAreaStatisticsEx,\r\n cAsof\r\n } = props;\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const [lstByEventType, setlstByEventType] = useState(null as any);\r\n const [lstTableSummaryEventReport, setlTableSummaryEventReport] = useState( [] as any);\r\n const [lstTableEventType, setlTableEventType] = useState([] as any);\r\n const [ lstTableSummaryEventReportDatail, setlTableSummaryEventReportDatail] = useState([] as any);\r\n const [lstTableReporSecurity, setllstTableReporSecurity] = useState(\r\n [] as any\r\n );\r\n const [selectEventGroup, setselectEventGroup] = useState();\r\n const [selectDate, setselectDate] = useState({\r\n startDate: \"\",\r\n endDate: \"\",\r\n });\r\n\r\n //Set to Export\r\n const [sImgChartsSecurity, setImgChartsSecurity] = useState(\"\");\r\n const [sImgChartsStatistics, setImgChartsStatistics] = useState(\"\");\r\n\r\n useEffect(() => {\r\n let obj = {\r\n nCompanyID: nCompanyID,\r\n nEventGroupID: mode,\r\n sStartDate: sDate.startDate,\r\n sEndDate: sDate.endDate,\r\n };\r\n\r\n if (cData != undefined && cData != null) {\r\n setselectDate({\r\n ...selectDate,\r\n startDate: sDate.startDate,\r\n endDate: sDate.endDate,\r\n });\r\n\r\n setselectEventGroup(mode);\r\n setlstByEventType(cData.cByEventType);\r\n setlTableEventType(new LINQ(cData.cResoltByTable.lstTableEventType).OrderBy(o => o.nOrderID).ToArray());\r\n\r\n \r\n setlTableSummaryEventReport(new LINQ(cData.cResoltByTable.lstTableSummaryEventReport).OrderBy(o => o.nCompanyOrderID)\r\n .ThenBy(t=> t.nAreaOrderID).ThenBy(t=> t.nSubAreaOrderID).ToArray());\r\n setlTableSummaryEventReportDatail( cData.cResoltByTable.lstTableSummaryEventReportDatail);\r\n setllstTableReporSecurity(new LINQ(cData.cResoltByTable.lstTableReporSecurity).OrderBy(o => o.nCompanyOrderID)\r\n .ThenBy(t=> t.nAreaOrderID).ThenBy(t=> t.nSubAreaOrderID).ToArray());\r\n\r\n //set data to export\r\n setcFilterDataEx(obj);\r\n setlTableEventTypeEx(new LINQ(cData.cResoltByTable.lstTableEventType).OrderBy(o => o.nOrderID).ToArray());\r\n\r\n setlTableSummaryEventReportEx(new LINQ(cData.cResoltByTable.lstTableSummaryEventReport).OrderBy(o => o.nCompanyOrderID)\r\n .ThenBy(t=> t.nAreaOrderID).ThenBy(t=> t.nSubAreaOrderID).ToArray());\r\n setlTableSummaryEventReportDatailEx( cData.cResoltByTable.lstTableSummaryEventReportDatail);\r\n setllstTableReporSecurityEx(new LINQ(cData.cResoltByTable.lstTableReporSecurity).OrderBy(o => o.nCompanyOrderID)\r\n .ThenBy(t=> t.nAreaOrderID).ThenBy(t=> t.nSubAreaOrderID).ToArray());\r\n } else {\r\n setcFilterDataEx(obj);\r\n }\r\n }, []);\r\n\r\n //#region กราฟ\r\n const CharteByEventType = useCallback(() => {\r\n return (\r\n {\r\n setImgChartsEx(e);\r\n }}\r\n />\r\n );\r\n }, [lstByEventType,cAsof]);\r\n\r\n const Charts_SummaryByEvent = useCallback(() => {\r\n return (\r\n {\r\n setSelectAreaStatisticsEx(e);\r\n }}\r\n exportImg={(e) => {\r\n setImgChartsSumEvTypeEx(e);\r\n }}\r\n />\r\n );\r\n }, [lstByEventType,cAsof]);\r\n\r\n const Chats_Statistics = useCallback(() => {\r\n return (\r\n {\r\n setImgChartsStatistics(e);\r\n setImgChartsStatisticsEx(e);\r\n }}\r\n />\r\n );\r\n }, [lstByEventType]);\r\n\r\n const Charts_ReportSecurity = useCallback(() => {\r\n return (\r\n {\r\n setImgChartsSecurity(e);\r\n setImgChartsSecurityEx(e);\r\n }}\r\n />\r\n );\r\n }, [lstByEventType, selectDate, lstTableReporSecurity]);//[sImgChartsStatistics, sImgChartsSecurity]);\r\n\r\n //#endregion\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {/* {isShoweExport && (\r\n
\r\n {\" \"}\r\n \r\n
\r\n )} */}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Company\r\n \r\n \r\n Area/Sub area\r\n \r\n {lstTableEventType.map((el, inex) => {\r\n return (\r\n \r\n {ParseHtml(el.sEventName + \"
(Report)\")}\r\n \r\n );\r\n })}\r\n \r\n Total
\r\n (Report)\r\n \r\n \r\n Not Report
\r\n (Day)\r\n \r\n \r\n \r\n \r\n {lstTableSummaryEventReport.map((el, index) => {\r\n let arrTotallCout = new LINQ(\r\n lstTableSummaryEventReportDatail\r\n )\r\n .Where((w) => w.nAreaID === el.nAreaID)\r\n .Count();\r\n let arrTotallEID: any = new LINQ(\r\n lstTableSummaryEventReportDatail\r\n )\r\n .Where((w) => w.nAreaID === el.nAreaID)\r\n .Select((s) => s.nEventID + \"\")\r\n .ToArray();\r\n return (\r\n \r\n \r\n {el.sCompanyName}\r\n \r\n {el.sAreaName}\r\n {lstTableEventType.map(\r\n (ex: { nEventTypeID: any }, inexEX: string) => {\r\n let nCout = new LINQ(\r\n lstTableSummaryEventReportDatail\r\n )\r\n .Where(\r\n (w) =>\r\n w.nAreaID === el.nAreaID &&\r\n w.nEventTypeID === ex.nEventTypeID\r\n )\r\n .Count();\r\n let nEID: any = new LINQ(\r\n lstTableSummaryEventReportDatail\r\n )\r\n .Where(\r\n (w) =>\r\n w.nAreaID === el.nAreaID &&\r\n w.nEventTypeID === ex.nEventTypeID\r\n )\r\n .Select((s) => s.nEventID + \"\")\r\n .ToArray();\r\n return (\r\n \r\n {nCout > 0 ? (\r\n \r\n {\" \"}\r\n {nCout}\r\n \r\n ) : (\r\n nCout\r\n )}\r\n \r\n );\r\n }\r\n )}\r\n\r\n \r\n {arrTotallCout > 0 ? (\r\n \r\n {\" \"}\r\n {arrTotallCout}\r\n \r\n ) : (\r\n arrTotallCout\r\n )}\r\n \r\n \r\n {el.nNotReport}\r\n \r\n \r\n // \r\n // \"Test\"\r\n // \r\n );\r\n })}\r\n \r\n \r\n Total\r\n \r\n {lstTableEventType.map(\r\n (ex: { nEventTypeID: any }, inexEX: string) => {\r\n let nCout = new LINQ(\r\n lstTableSummaryEventReportDatail\r\n )\r\n .Where((w) => w.nEventTypeID === ex.nEventTypeID)\r\n .Count();\r\n let nEID: any = new LINQ(\r\n lstTableSummaryEventReportDatail\r\n )\r\n .Where((w) => w.nEventTypeID === ex.nEventTypeID)\r\n .Select((s) => s.nEventID + \"\")\r\n .ToArray();\r\n\r\n return (\r\n \r\n {nCout > 0 ? (\r\n \r\n {\" \"}\r\n {nCout}\r\n \r\n ) : (\r\n nCout\r\n )}\r\n \r\n );\r\n }\r\n )}\r\n\r\n \r\n {new LINQ(\r\n lstTableSummaryEventReportDatail\r\n ).Count() > 0 ? (\r\n (\r\n lstTableSummaryEventReportDatail\r\n )\r\n .Select((s) => s.nEventID + \"\")\r\n .ToArray()\r\n .join(\",\")\r\n ) +\r\n \"&Mode=\" +\r\n Encrypt(\"Report\")\r\n }\r\n >\r\n {\" \"}\r\n {new LINQ(\r\n lstTableSummaryEventReportDatail\r\n ).Count()}\r\n \r\n ) : (\r\n new LINQ(\r\n lstTableSummaryEventReportDatail\r\n ).Count()\r\n )}\r\n \r\n \r\n {/* {new LINQ(lstTableSummaryEventReport).Sum(\r\n (s) => s.nNotReport\r\n )} */}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {selectEventGroup === 3 && (\r\n \r\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 MonthlyComponent;\r\n","import React, { Fragment, useState, useEffect, useCallback } from \"react\";\r\nimport \"react-draft-wysiwyg/dist/react-draft-wysiwyg.css\";\r\nimport { Grid } from \"@material-ui/core\";\r\nimport SelectFormItem from \"../form/SelectFormItem\";\r\nimport \"react-draft-wysiwyg/dist/react-draft-wysiwyg.css\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n Encrypt,\r\n AxiosPost,\r\n scrollToElementValidate,\r\n FnBlock_UI,\r\n ResultAPI,\r\n MsgValidate,\r\n Effect,\r\n Decrypt,\r\n ParseHtml,\r\n AxiosPostExportFile,\r\n} from \"../SysComponent/SystemComponent\";\r\nimport { Formik, Form } from \"formik\";\r\nimport { Button, Card, CardBody, Table } from \"reactstrap\";\r\nimport {\r\n MuiButtonSearch,\r\n MuiButtonExport,\r\n MuiButtonExportPDF,\r\n} from \"../SysComponent/MaterialComponent\";\r\nimport * as yup from \"yup\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport MonthlyComponent from \"../General/ReportComponent/MonthlyComponent\";\r\n\r\nconst dateFormat = require(\"dateformat\");\r\nconst sController = \"MonthlyReport\";\r\nconst ReportMonthly = () => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const [cDataO, setcDataO] = React.useState(null as any);\r\n const [cDataS, setcDataS] = React.useState(null as any);\r\n const [cDataC, setcDataC] = React.useState(null as any);\r\n const [selectCompany, setSelectCompany] = useState(null as any);\r\n const [sExportCompany, setExportCompany] = useState(null as any);\r\n const [isShoweExport, setisShoweExport] = useState(false);\r\n const [selectDate, setselectDate] = useState({\r\n startDate: \"\",\r\n endDate: \"\",\r\n sMonth: \"\",\r\n });\r\n\r\n const [cAsof, setcAsof] = React.useState(new Date());\r\n const [lstEventGroupID, setlstEventGroupID] = React.useState([] as any[]);\r\n //get img charts Operation\r\n const [cFilterDataO, setcFilterDataO] = useState(null as any);\r\n const [sImgChartsEvTypeO, setImgChartsO] = useState(\"\");\r\n const [sImgChartsSumEvTypeO, setImgChartsSumEvTypeO] = useState(\"\");\r\n const [sImgChartsSecurityO, setImgChartsSecurityO] = useState(\"\");\r\n const [sImgChartsStatisticsO, setImgChartsStatisticsO] = useState(\"\");\r\n const [lstTableEventTypeO, setlTableEventTypeO] = useState([] as any);\r\n const [lstTableSummaryEventReportO, setlTableSummaryEventReportO] = useState(\r\n [] as any\r\n );\r\n const [\r\n lstTableSummaryEventReportDatailO,\r\n setlTableSummaryEventReportDatailO,\r\n ] = useState([] as any);\r\n const [lstTableReporSecurityO, setllstTableReporSecurityO] = useState(\r\n [] as any\r\n );\r\n const [SelectAreaStatisticsO, setSelectAreaStatisticsO] = useState(\r\n [] as any[]\r\n );\r\n\r\n //get img charts Security\r\n const [cFilterDataS, setcFilterDataS] = useState(null as any);\r\n const [sImgChartsEvTypeS, setImgChartsS] = useState(\"\");\r\n const [sImgChartsSumEvTypeS, setImgChartsSumEvTypeS] = useState(\"\");\r\n const [sImgChartsSecurityS, setImgChartsSecurityS] = useState(\"\");\r\n const [sImgChartsStatisticsS, setImgChartsStatisticsS] = useState(\"\");\r\n const [lstTableEventTypeS, setlTableEventTypeS] = useState([] as any);\r\n const [lstTableSummaryEventReportS, setlTableSummaryEventReportS] = useState(\r\n [] as any\r\n );\r\n const [\r\n lstTableSummaryEventReportDatailS,\r\n setlTableSummaryEventReportDatailS,\r\n ] = useState([] as any);\r\n const [lstTableReporSecurityS, setllstTableReporSecurityS] = useState(\r\n [] as any\r\n );\r\n const [SelectAreaStatisticsS, setSelectAreaStatisticsS] = useState(\r\n [] as any[]\r\n );\r\n\r\n //get img charts CSR\r\n const [cFilterDataC, setcFilterDataC] = useState();\r\n const [sImgChartsEvTypeC, setImgChartsC] = useState(\"\");\r\n const [sImgChartsSumEvTypeC, setImgChartsSumEvTypeC] = useState(\"\");\r\n const [sImgChartsSecurityC, setImgChartsSecurityC] = useState(\"\");\r\n const [sImgChartsStatisticsC, setImgChartsStatisticsC] = useState(\"\");\r\n const [lstTableEventTypeC, setlTableEventTypeC] = useState([] as any);\r\n const [lstTableSummaryEventReportC, setlTableSummaryEventReportC] = useState(\r\n [] as any\r\n );\r\n const [\r\n lstTableSummaryEventReportDatailC,\r\n setlTableSummaryEventReportDatailC,\r\n ] = useState([] as any);\r\n const [lstTableReporSecurityC, setllstTableReporSecurityC] = useState(\r\n [] as any\r\n );\r\n const [SelectAreaStatisticsC, setSelectAreaStatisticsC] = useState(\r\n [] as any[]\r\n );\r\n\r\n const [MasterData, setMasterData] = React.useState({\r\n lstCompany: [] as any[],\r\n lstCompanyCSR: [] as any[],\r\n lstEventGroup: [] as any[],\r\n lstArea: [] as any[],\r\n lstEventTypeData: [] as any[],\r\n });\r\n\r\n const [inFromEventReport, setFromEventReport] = useState({\r\n nCompanyID: \"\" as any,\r\n });\r\n\r\n const validateOperation = yup.object().shape({\r\n nCompanyID: yup.string().required(MsgValidate.PleaseSpecify + \"Company\"),\r\n });\r\n\r\n const [cUseData, setcUseData] = useState({ WeeklyDate: \"\" as any, Mode: \"\" as any });\r\n const LoadData = async () => {\r\n // let params = new URLSearchParams(window.location.search);\r\n // let WeeklyDate = Decrypt(params.get(\"Monthly\")) + \"\";\r\n // let Mode = Decrypt(params.get(\"Mode\")) + \"\";\r\n // setcUseData({...cUseData,WeeklyDate:WeeklyDate,Mode:Mode});\r\n\r\n\r\n let obj = { nCompanyID: null };\r\n await AxiosPost(\r\n sController + \"/GetCompanyList\",\r\n obj,\r\n (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setMasterData({\r\n ...MasterData,\r\n lstCompany: response.lstCompany,\r\n lstCompanyCSR: response.lstCompanyCSR,\r\n });\r\n setFromEventReport({\r\n ...inFromEventReport,\r\n nCompanyID: response.nDefaultCompanyID + \"\",\r\n });\r\n\r\n onSubmit(response.nDefaultCompanyID);\r\n });\r\n },\r\n () => { },\r\n BlockUI,\r\n UnBlockUI\r\n );\r\n };\r\n\r\n const onSubmit = (nDefaultCompanyID) => {\r\n LoadDataOperation(nDefaultCompanyID);\r\n LoadDataSecurity(nDefaultCompanyID);\r\n LoadDataCSR(nDefaultCompanyID);\r\n };\r\n\r\n const LoadDataOperation = async (nDefaultCompanyID) => {\r\n let params = new URLSearchParams(window.location.search);\r\n let WeeklyDate = Decrypt(params.get(\"Monthly\")) + \"\";\r\n let Mode = Decrypt(params.get(\"Mode\")) + \"\";\r\n let obj = {\r\n nCompanyID: selectCompany ? parseInt(selectCompany) : nDefaultCompanyID,\r\n nEventGroupID: 2,\r\n sStartDate: WeeklyDate\r\n };\r\n setExportCompany(obj.nCompanyID);\r\n setisShoweExport(false);\r\n await AxiosPost(\r\n sController + \"/GetByEventType\",\r\n obj,\r\n (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setlstEventGroupID(response.lstEventGroupID);\r\n setselectDate({\r\n startDate: response.sStartDate,\r\n endDate: response.sEndDate,\r\n sMonth: response.sMonth,\r\n });\r\n setcDataO(response);\r\n });\r\n },\r\n () => { },\r\n BlockUI,\r\n UnBlockUI\r\n );\r\n };\r\n\r\n const LoadDataSecurity = async (nDefaultCompanyID) => {\r\n let params = new URLSearchParams(window.location.search);\r\n let WeeklyDate = Decrypt(params.get(\"Monthly\")) + \"\";\r\n let Mode = Decrypt(params.get(\"Mode\")) + \"\";\r\n let obj = {\r\n nCompanyID: selectCompany ? parseInt(selectCompany) : nDefaultCompanyID,\r\n nEventGroupID: 3,\r\n sStartDate: WeeklyDate\r\n };\r\n setisShoweExport(false);\r\n await AxiosPost(\r\n sController + \"/GetByEventType\",\r\n obj,\r\n (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setselectDate({\r\n startDate: response.sStartDate,\r\n endDate: response.sEndDate,\r\n sMonth: response.sMonth,\r\n });\r\n setcDataS(response);\r\n });\r\n },\r\n () => { },\r\n BlockUI,\r\n UnBlockUI\r\n );\r\n };\r\n\r\n const LoadDataCSR = async (nDefaultCompanyID) => {\r\n let params = new URLSearchParams(window.location.search);\r\n let WeeklyDate = Decrypt(params.get(\"Monthly\")) + \"\";\r\n let Mode = Decrypt(params.get(\"Mode\")) + \"\";\r\n let obj = {\r\n nCompanyID: selectCompany ? parseInt(selectCompany) : nDefaultCompanyID,\r\n nEventGroupID: 1,\r\n sStartDate: WeeklyDate\r\n };\r\n setisShoweExport(false);\r\n await AxiosPost(\r\n sController + \"/GetByEventType\",\r\n obj,\r\n (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setcAsof(response.dAsof);\r\n setselectDate({\r\n startDate: response.sStartDate,\r\n endDate: response.sEndDate,\r\n sMonth: response.sMonth,\r\n });\r\n setcDataC(response);\r\n /// clearInterval(timer);\r\n setInterval(() => {\r\n setisShoweExport(true);\r\n clearInterval();\r\n }, 40000);\r\n });\r\n },\r\n () => { },\r\n BlockUI,\r\n UnBlockUI\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n const OMonthlyReport = useCallback(() => {\r\n return (\r\n \r\n );\r\n }, [cDataO, cAsof]);\r\n const SMonthlyReport = useCallback(() => {\r\n \r\n\r\n\r\n return (\r\n \r\n );\r\n }, [cDataS, cAsof]);\r\n const CMonthlyReport = useCallback(() => {\r\n return (\r\n \r\n );\r\n }, [cDataC, cAsof]);\r\n\r\n const exportExcel = () => {\r\n let objOperation = {\r\n cFilterData: cFilterDataO,\r\n sImgsImgChartsEvType: sImgChartsEvTypeO,\r\n sImgChartsSumEvType: sImgChartsSumEvTypeO,\r\n sImgChartsSecurity: sImgChartsSecurityO,\r\n sImgChartsStatistics: sImgChartsStatisticsO,\r\n lstTableEventType: lstTableEventTypeO,\r\n lstTableSummaryEventReport: lstTableSummaryEventReportO,\r\n lstTableSummaryEventReportDatail: lstTableSummaryEventReportDatailO,\r\n lstTableReporSecurity: lstTableReporSecurityO,\r\n lstSelectAreaID: SelectAreaStatisticsO,\r\n sAsof: dateFormat(cAsof, \"dd/mm/yyyy\")\r\n };\r\n let objSecurity = {\r\n cFilterData: cFilterDataS,\r\n sImgsImgChartsEvType: sImgChartsEvTypeS,\r\n sImgChartsSumEvType: sImgChartsSumEvTypeS,\r\n sImgChartsSecurity: sImgChartsSecurityS,\r\n sImgChartsStatistics: sImgChartsStatisticsS,\r\n lstTableEventType: lstTableEventTypeS,\r\n lstTableSummaryEventReport: lstTableSummaryEventReportS,\r\n lstTableSummaryEventReportDatail: lstTableSummaryEventReportDatailS,\r\n lstTableReporSecurity: lstTableReporSecurityS,\r\n lstSelectAreaID: SelectAreaStatisticsS,\r\n sAsof: dateFormat(cAsof, \"dd/mm/yyyy\")\r\n };\r\n let objCSR = {\r\n cFilterData: cFilterDataC,\r\n sImgsImgChartsEvType: sImgChartsEvTypeC,\r\n sImgChartsSumEvType: sImgChartsSumEvTypeC,\r\n sImgChartsSecurity: sImgChartsSecurityC,\r\n sImgChartsStatistics: sImgChartsStatisticsC,\r\n lstTableEventType: lstTableEventTypeC,\r\n lstTableSummaryEventReport: lstTableSummaryEventReportC,\r\n lstTableSummaryEventReportDatail: lstTableSummaryEventReportDatailC,\r\n lstTableReporSecurity: lstTableReporSecurityC,\r\n lstSelectAreaID: SelectAreaStatisticsC,\r\n sAsof: dateFormat(cAsof, \"dd/mm/yyyy\")\r\n };\r\n\r\n let lstExport: any = [];\r\n lstExport.push(objOperation);\r\n lstExport.push(objSecurity);\r\n lstExport.push(objCSR);\r\n\r\n AxiosPostExportFile(\r\n sController + \"/ExportExcel\",\r\n lstExport,\r\n \"Report_Monthly_\" + dateFormat(new Date(), \"ddmmyyyyHHMM\") + \".xlsx\",\r\n () => { },\r\n BlockUI,\r\n UnBlockUI\r\n );\r\n };\r\n const exportPDF = () => {\r\n let objOperation = {\r\n cFilterData: cFilterDataO,\r\n sImgsImgChartsEvType: sImgChartsEvTypeO,\r\n sImgChartsSumEvType: sImgChartsSumEvTypeO,\r\n sImgChartsSecurity: sImgChartsSecurityO,\r\n sImgChartsStatistics: sImgChartsStatisticsO,\r\n lstTableEventType: lstTableEventTypeO,\r\n lstTableSummaryEventReport: lstTableSummaryEventReportO,\r\n lstTableSummaryEventReportDatail: lstTableSummaryEventReportDatailO,\r\n lstTableReporSecurity: lstTableReporSecurityO,\r\n lstSelectAreaID: SelectAreaStatisticsO,\r\n sAsof: dateFormat(cAsof, \"dd/mm/yyyy\")\r\n };\r\n let objSecurity = {\r\n cFilterData: cFilterDataS,\r\n sImgsImgChartsEvType: sImgChartsEvTypeS,\r\n sImgChartsSumEvType: sImgChartsSumEvTypeS,\r\n sImgChartsSecurity: sImgChartsSecurityS,\r\n sImgChartsStatistics: sImgChartsStatisticsS,\r\n lstTableEventType: lstTableEventTypeS,\r\n lstTableSummaryEventReport: lstTableSummaryEventReportS,\r\n lstTableSummaryEventReportDatail: lstTableSummaryEventReportDatailS,\r\n lstTableReporSecurity: lstTableReporSecurityS,\r\n lstSelectAreaID: SelectAreaStatisticsS,\r\n sAsof: dateFormat(cAsof, \"dd/mm/yyyy\")\r\n };\r\n let objCSR = {\r\n cFilterData: cFilterDataC,\r\n sImgsImgChartsEvType: sImgChartsEvTypeC,\r\n sImgChartsSumEvType: sImgChartsSumEvTypeC,\r\n sImgChartsSecurity: sImgChartsSecurityC,\r\n sImgChartsStatistics: sImgChartsStatisticsC,\r\n lstTableEventType: lstTableEventTypeC,\r\n lstTableSummaryEventReport: lstTableSummaryEventReportC,\r\n lstTableSummaryEventReportDatail: lstTableSummaryEventReportDatailC,\r\n lstTableReporSecurity: lstTableReporSecurityC,\r\n lstSelectAreaID: SelectAreaStatisticsC,\r\n sAsof: dateFormat(cAsof, \"dd/mm/yyyy\")\r\n };\r\n\r\n let lstExport: any = [];\r\n lstExport.push(objOperation);\r\n lstExport.push(objSecurity);\r\n lstExport.push(objCSR);\r\n console.log(\"lstExport\",lstExport);\r\n AxiosPostExportFile(\r\n sController + \"/ExportPDF\",\r\n lstExport,\r\n \"Report_Monthly_\" + dateFormat(new Date(), \"ddmmyyyyHHMM\") + \".pdf\",\r\n () => { },\r\n BlockUI,\r\n UnBlockUI\r\n );\r\n };\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Event Report รายงานเหตุการณ์ ประจำเดือน{\" \"}\r\n {selectDate.sMonth}\r\n
\r\n
\r\n \r\n \r\n \r\n {(lstEventGroupID.length == 1 && lstEventGroupID.filter(f => f === 1).length > 0) ?\r\n \r\n : \r\n \r\n \r\n \r\n {(formProps) => {\r\n return (\r\n
\r\n {\r\n scrollToElementValidate(\"formCreateInfo\");\r\n }}\r\n />\r\n \r\n \r\n {\r\n setSelectCompany(data);\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }}\r\n \r\n
\r\n
\r\n
\r\n }\r\n \r\n {lstEventGroupID.length > 0 &&
\r\n {isShoweExport && (\r\n
\r\n {\" \"}\r\n \r\n
\r\n )}\r\n
\r\n }\r\n {lstEventGroupID.filter(f => f === 2).length > 0 && \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n style={{ backgroundColor: \"rgb(58,61,92)\", color: \"#fff\" }}\r\n >\r\n OPERATION\r\n \r\n \r\n \r\n \r\n \r\n\r\n }\r\n {lstEventGroupID.filter(f => f === 3).length > 0 && \r\n }\r\n aria-controls=\"panel2a-content\"\r\n id=\"panel2a-header\"\r\n style={{ backgroundColor: \"rgb(150,90,79)\", color: \"#fff\" }}\r\n >\r\n SECURITY\r\n \r\n \r\n \r\n \r\n \r\n }\r\n {lstEventGroupID.filter(f => f === 1).length > 0 && \r\n }\r\n aria-controls=\"panel3a-content\"\r\n id=\"panel3a-header\"\r\n style={{ backgroundColor: \"rgb(0,120,144)\", color: \"#fff\" }}\r\n >\r\n CSR\r\n \r\n \r\n \r\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 ReportMonthly;\r\n","import React, { useLayoutEffect, Fragment } from 'react';\r\nimport * as am4core from \"@amcharts/amcharts4/core\";\r\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\r\nimport am4themes_animated from \"@amcharts/amcharts4/themes/animated\";\r\nimport InputFormItemLogin from 'components/form/InputFormItemLogin';\r\nimport { List as LINQ } from \"linqts\";\r\nconst dateFormat = require('dateformat');\r\nam4core.useTheme(am4themes_animated);\r\nconst Charts_Stacked_AreaByYear = (props) => {\r\n const { data, isClassName, exportImg,dAsof } = props;\r\n useLayoutEffect(() => {\r\n if (data) {\r\n // *** Paramister kepping data\r\n let chartData = [] as any[];\r\n let chart = am4core.create(`${isClassName}`, am4charts.XYChart);\r\n chart.responsive.enabled = true;\r\n // *** Mapping data \r\n\r\n data.lstYearlyData.forEach(f => {\r\n let objData = { 'sMonth': f.sMonth };\r\n f.lstEventType.forEach(x => {\r\n objData[x.label] = x.value;\r\n });\r\n chartData.push(objData);\r\n });\r\n\r\n const colorList = [\"#10bc2d\",\"#0000FF\", \"#9400D3\", \"#F78813\", \"#FF0000\", \"#00CED1\", \"#FF1493\", \"#FFD700\", \"#FFA500\", \"#FF8C00\", \"#7B68EE\", \"#A3E7D8\", \"#F298B1\", \"#A4C8F0\", \"#F9A484\", \"#F4EFAF\", \"#E1FD8E\", \"#EFA694\", \"#FFBE7D\", \"#88BBDD\", \"#6699AA\", \"#88DDBB\", \"#88BBAA\", \"#B9E3AE\", \"#BACAB3\", \"#FFFF88\", \"#9876B1\", \"#F2ED8C\", \"#CBAB8D\", \"#FFDDDD\", \"#FDB4BF\", \"#FF9797\", \"#D0B3E1\", \"#B3B3D9\", \"#C0C0C0\"];\r\n\r\n chart.data = chartData; // *** Add chartData\r\n\r\n chart.legend = new am4charts.Legend();\r\n chart.legend.position = \"bottom\";\r\n\r\n let categoryAxis = chart.yAxes.push(new am4charts.CategoryAxis());\r\n categoryAxis.dataFields.category = \"sMonth\";\r\n categoryAxis.renderer.grid.template.opacity = 0;\r\n categoryAxis.renderer.minGridDistance = 10; // *** ระยะห่างของ label\r\n\r\n let valueAxis = chart.xAxes.push(new am4charts.ValueAxis());\r\n valueAxis.min = 0;\r\n valueAxis.renderer.grid.template.opacity = 0;\r\n valueAxis.renderer.ticks.template.strokeOpacity = 0.5;\r\n valueAxis.renderer.ticks.template.stroke = am4core.color(\"#495C43\");\r\n valueAxis.renderer.ticks.template.length = 10;\r\n valueAxis.renderer.line.strokeOpacity = 0.5;\r\n valueAxis.renderer.baseGrid.disabled = true;\r\n\r\n valueAxis.max = 100; // *** ค่า Max ของแกน X\r\n\r\n // *** Title\r\n let title = chart.titles.create(am4core.Label);\r\n title.text = `[bold font-size: 16]${data.sComArea.replace(\"[\", \"[[\").replace(\"]\", \"]]\").replace(\"
\",\"\\n\")+ (dAsof != undefined && dAsof != null ? \" (As of \" + dateFormat(dAsof, \"dd/mm/yyyy\") : \"\")+\")\" || \"COMPANY: AREA\"}[/]`;\r\n // title.layout = \"grid\";\r\n // title.fixedWidthGrid = false;\r\n title.wrap = true;\r\n // title.contentWidth = 1;\r\n title.textAlign = \"middle\";\r\n title.marginLeft=10;\r\n title.marginRight=10;\r\n // *** Criteria\r\n const createSeries = (field, name, nColor) => {\r\n let series = chart.series.push(new am4charts.ColumnSeries());\r\n series.dataFields.valueX = field;\r\n series.dataFields.categoryY = \"sMonth\";\r\n series.stacked = true;\r\n series.name = name;\r\n\r\n series.fill = am4core.color(colorList[nColor]); // *** สีตรงกลาง\r\n series.stroke = am4core.color(colorList[nColor]); // *** สีขอบเส้น\r\n\r\n // *** Toolttp\r\n series.dataFields.valueY = field;\r\n series.columns.template.tooltipText = \"{name}: [bold]{valueY}[/]\";\r\n\r\n let labelBullet = series.bullets.push(new am4charts.LabelBullet());\r\n labelBullet.locationX = 0.5;\r\n labelBullet.label.text = \"{valueX}\";\r\n labelBullet.label.fill = am4core.color(\"#fff\");\r\n }\r\n new LINQ(data.lstEventTypeCriteria).OrderBy(o => o.nOrder3).ToArray().map((item, index) => {\r\n createSeries(item.label, item.label, index);\r\n })\r\n\r\n // *** Img\r\n chart.exporting.getImage(\"png\").then((data) => {\r\n exportImg(data);\r\n });\r\n }\r\n\r\n }, [])\r\n return (\r\n \r\n {/*
{data.sComArea || \"COMPANY: AREA\"}
*/}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Charts_Stacked_AreaByYear;","import React, { Fragment, useState, useEffect, useCallback } from 'react';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\nimport { Link } from 'react-router-dom';\r\nimport { Encrypt, AxiosPost, scrollToElementValidate, FnBlock_UI, ResultAPI, MsgValidate, Decrypt, ParseHtml, AxiosPostExportFile, Effect } from '../SysComponent/SystemComponent';\r\nimport { Formik, Form } from \"formik\";\r\nimport { Card, CardBody, Table } from 'reactstrap';\r\nimport { List as LINQ } from 'linqts';\r\nimport * as yup from 'yup';\r\nimport { Grid, Accordion, AccordionSummary } from '@material-ui/core';\r\nimport { MuiButtonExport, MuiButtonExportPDF, MuiButtonSearch } from '../SysComponent/MaterialComponent'\r\nimport SelectFormItem from '../form/SelectFormItem';\r\nimport { DatePicker } from \"@material-ui/pickers\";\r\n// *** Graph\r\nimport Charts_Stacked_AreaByYear from '../General/ChartsComponent/Charts_Stacked_AreaByYear'\r\nimport { any } from '@amcharts/amcharts4/.internal/core/utils/Array';\r\n\r\nconst dateFormat = require('dateformat');\r\nconst sController = \"YearlyReport\";\r\nconst ReportYearly = () => {\r\n // *** Ref ReportWeekly\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const [cData, setcData] = useState(null as any);\r\n const [sDateTo, setDateTo] = React.useState(null);\r\n\r\n\r\n const [cFilterData, setcFilterData] = useState(null as any);\r\n const [isShoweExport, setisShoweExport] = useState(false);\r\n const [lstByEventType, setlstByEventType] = useState(null as any);\r\n const [lstTableEventType, setlTableEventType] = useState([] as any);\r\n const [lstTableSummaryEventReport, setlTableSummaryEventReport] = useState([] as any);\r\n const [lstTableSummaryEventReportDatail, setlTableSummaryEventReportDatail] = useState([] as any);\r\n const [lstTableReporSecurity, setllstTableReporSecurity] = useState([] as any);\r\n\r\n const [sStartDate, SetStartDate] = useState(\"\");\r\n const [sEndDate, SetEndDate] = useState(\"\");\r\n const [lstImgChartStacked, SetImgChartStacked] = useState([] as any);\r\n\r\n const [arrYear, setarrYear] = useState([] as any[]);\r\n const [dAsof, setdAsof] = useState(new Date() as any);\r\n const LoadData = async (WeeklyDate) => {\r\n\r\n let obj = {\r\n 'nCompanyID': null,\r\n 'nEventGroupID': null,\r\n 'lstAreaID': null,\r\n 'lstEventType': null,\r\n 'sStartDate': WeeklyDate, // *** (Year) ที่จะต้องส่ง\r\n 'sEndDate': WeeklyDate, // *** (Year) ที่จะต้องส่ง\r\n };\r\n\r\n await AxiosPost(sController + \"/LoadData\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setdAsof(response.dAsof)\r\n setFromEventReport({\r\n ...inFromEventReport,\r\n nCompanyID: response.nDefaultCompanyID + \"\",\r\n nEventGroupID: response.nDefaultEventGroup + \"\",\r\n EventDate: [new Date(response.dDefaultStartDate), new Date(response.dDefaultEndDate)],\r\n nYear: (response.nYear + \"\"),\r\n lstAreaID: response.lstDefaultArea\r\n });\r\n setDateTo(response.nYear);\r\n let dnow = new Date();\r\n let arrY: any[] = [];\r\n for (let i = 2020; i <= (+dnow.getFullYear()); i++) {\r\n\r\n arrY.push({ 'label': (i + \"\"), 'value': (i + \"\"), 'nOr': i })\r\n }\r\n setarrYear(new LINQ(arrY).OrderByDescending(o => o.nOr).ToArray());\r\n setMasterData({\r\n ...MasterData,\r\n lstCompany: response.lstCompany,\r\n lstCompanyCSR: response.lstCompanyCSR,\r\n lstEventGroup: response.lstEventGroup,\r\n lstArea: response.lstArea, // *** เเล้วมาเเก้ไขตรงนี้\r\n lstGraph: response.lstTYearlyData, // *** เเล้วมาเเก้ไขตรงนี้\r\n lstEventTypeData: []\r\n });\r\n // *** Date \r\n SetStartDate(response.dDefaultStartDate);\r\n SetEndDate(response.dDefaultEndDate);\r\n GetData(response.nDefaultCompanyID, response.nDefaultEventGroup, response.lstDefaultArea, [], new Date(response.dDefaultStartDate), new Date(response.dDefaultEndDate));\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n const GetData = async (nCompanyID, nEventGroupID, lstAreaID, lstEventType, sStartDate, sEndDate) => {\r\n let obj = {\r\n 'nCompanyID': nCompanyID,\r\n 'nEventGroupID': nEventGroupID,\r\n 'lstAreaID': lstAreaID.length > 0 ? new LINQ(lstAreaID).Select(s => (+s)).ToArray() : null,\r\n 'lstEventType': lstEventType.length > 0 ? new LINQ(lstEventType).Select(s => (+s)).ToArray() : null,\r\n 'sStartDate': sStartDate != null ? dateFormat(sStartDate, \"dd/mm/yyyy\") : \"\",\r\n 'sEndDate': sEndDate != null ? dateFormat(sEndDate, \"dd/mm/yyyy\") : \"\",\r\n };\r\n\r\n setcFilterData(obj);\r\n // setisShoweExport(false);\r\n await AxiosPost(sController + \"/GetByEventType\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setlstByEventType(response.cByEventType);\r\n setlTableEventType(new LINQ(response.cResoltByTable.lstTableEventType).OrderBy(o => o.nOrderID).ToArray());\r\n setlTableSummaryEventReport(new LINQ(response.cResoltByTable.lstTableSummaryEventReport).OrderBy(o => o.nCompanyOrderID)\r\n .ThenBy(t=> t.nAreaOrderID).ThenBy(t=> t.nSubAreaOrderID).ToArray());\r\n setlTableSummaryEventReportDatail(response.cResoltByTable.lstTableSummaryEventReportDatail);\r\n setllstTableReporSecurity(new LINQ(response.cResoltByTable.lstTableReporSecurity).OrderBy(o => o.nCompanyOrderID)\r\n .ThenBy(t=> t.nAreaOrderID).ThenBy(t=> t.nSubAreaOrderID).ToArray());\r\n\r\n\r\n setInterval(() => {\r\n // setisShoweExport(true);\r\n clearInterval();\r\n }, 40000);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n const LoadAear = async (EventGroupSelect, CompanySelect, Yesr, lstAreaID) => {\r\n if (EventGroupSelect != \"\" && CompanySelect != \"\") {\r\n let obj = {\r\n nEventGroupID: +EventGroupSelect,\r\n nCompanyID: +CompanySelect,\r\n lstAreaID: lstAreaID.length > 0 ? new LINQ(lstAreaID).Select(s => (+s)).ToArray() : [],\r\n sStartDate: \"01/01/\" + Yesr\r\n };\r\n setDateTo(Yesr);\r\n // *** Get Graph \r\n await AxiosPost(sController + \"/GetArea\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setMasterData({\r\n ...MasterData,\r\n lstGraph: response\r\n })\r\n // *** Img\r\n SetImgChartStacked([]);\r\n // *** Table\r\n GetData(+CompanySelect, +EventGroupSelect, lstAreaID, [], new Date((+Yesr), 1, 1), new Date((+Yesr), 1, 1)); // *** null is date\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n };\r\n\r\n const GetAear_ = async (EventGroupSelect, CompanySelect) => {\r\n if (EventGroupSelect != \"\" && CompanySelect != \"\") {\r\n let obj = {\r\n nEventGroupID: +EventGroupSelect,\r\n nCompanyID: +CompanySelect,\r\n };\r\n await AxiosPost(sController + \"/LoadArea\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setMasterData({ ...MasterData, lstArea: response });\r\n });\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n };\r\n\r\n // *** Get Data\r\n useEffect(() => {\r\n let params = new URLSearchParams(window.location.search);\r\n let WeeklyDate = Decrypt(params.get(\"Yearly\")) + \"\";\r\n LoadData(WeeklyDate);\r\n }, [])\r\n // *** Data\r\n const [MasterData, setMasterData] = React.useState({\r\n lstCompany: [] as any[],\r\n lstCompanyCSR: [] as any[],\r\n lstEventGroup: [] as any[],\r\n lstArea: [] as any[],\r\n lstGraph: [] as any[],\r\n lstEventTypeData: [] as any[]\r\n })\r\n // *** Schema\r\n const [inFromEventReport, setFromEventReport] = useState({\r\n nCompanyID: \"\" as any,\r\n nEventGroupID: \"\" as any,\r\n lstAreaID: [] as any[],\r\n lstEventType: [] as any[],\r\n EventDate: [] as any[],\r\n nYear: \"\" as any,\r\n });\r\n // *** Validate \r\n const validateOperation = yup.object().shape({\r\n nEventGroupID: yup.string().required(MsgValidate.PleaseSpecify + 'Event Group'),\r\n nCompanyID: yup.string().required(MsgValidate.PleaseSpecify + 'Company'),\r\n nYear: yup.string().required(MsgValidate.PleaseSpecify + 'Year'),\r\n lstAreaID: yup.array().required(MsgValidate.PleaseSpecify + 'พื้นที่รายงาน(Area Name)'),\r\n });\r\n // *** Submit\r\n const onSave = (values) => {\r\n // *** Graph \r\n LoadAear(values.nEventGroupID, values.nCompanyID, values.nYear, values.lstAreaID);\r\n }\r\n // *** Export \r\n const setObjExport = () => {\r\n let obj = {\r\n \"cFilterData\": cFilterData,\r\n \"lstImgChartStacked\": lstImgChartStacked,\r\n \"lstTableEventType\": lstTableEventType,\r\n \"lstTableSummaryEventReport\": lstTableSummaryEventReport,\r\n \"lstTableSummaryEventReportDatail\": lstTableSummaryEventReportDatail,\r\n \"lstTableReporSecurity\": lstTableReporSecurity,\r\n \"sAsof\": dateFormat(dAsof, \"dd/mm/yyyy\")\r\n };\r\n return obj;\r\n }\r\n const exportPDF = () => AxiosPostExportFile(sController + \"/ExportPDF\", setObjExport(), \"Yearly_Report_Event_\" + (dateFormat(new Date(), \"ddmmyyyyHHMM\")) + \".pdf\", () => { }, BlockUI, UnBlockUI);\r\n const exportExcel = () => AxiosPostExportFile(sController + \"/ExportExcel\", setObjExport(), \"Yearly_Report_Event_\" + (dateFormat(new Date(), \"ddmmyyyyHHMM\")) + \".xlsx\", () => { }, BlockUI, UnBlockUI);\r\n\r\n\r\n const Chart_Stacked_Year = useCallback(() => {\r\n return (\r\n \r\n {\r\n MasterData.lstGraph.length > 0 &&\r\n new LINQ(MasterData.lstGraph).OrderBy(o=> o.nOrderID_1).ThenBy(t=> t.nOrderID_2).ToArray().map((item, index) =>\r\n \r\n \r\n \r\n {\r\n let d ={sComArea:item.sComArea, sImg:e,nOrderID:index};\r\n SetImgChartStacked(item => [...item, d])\r\n }}\r\n />\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n )\r\n }, [MasterData.lstGraph, dAsof])\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
Event Report รายงานเหตุการณ์ ประจําปี {\" \"}\r\n \r\n {sDateTo || \" 2020\"}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n {(formProps) => {\r\n return (\r\n
\r\n {\r\n scrollToElementValidate(\"formCreateInfo\");\r\n }}\r\n />\r\n \r\n \r\n {\r\n formProps.setFieldValue(\"nCompanyID\", \"\");\r\n formProps.setFieldValue(\"lstAreaID\", []);\r\n setMasterData({\r\n ...MasterData, lstArea: []\r\n })\r\n }}\r\n />\r\n \r\n \r\n {\r\n formProps.setFieldValue(\"lstAreaID\", []);\r\n GetAear_(formProps.values.nEventGroupID, data);\r\n }}\r\n />\r\n \r\n \r\n {\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }}\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n {\r\n lstImgChartStacked.length === MasterData.lstGraph.length &&\r\n
\r\n {' '}\r\n \r\n
}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {lstTableEventType.map((el, inex) => {\r\n return (\r\n \r\n )\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n {lstTableSummaryEventReport.map((el, index) => {\r\n let arrTotallCout = new LINQ(lstTableSummaryEventReportDatail).Where(w => w.nAreaID === el.nAreaID).Count()\r\n let arrTotallEID: any = new LINQ(lstTableSummaryEventReportDatail).Where(w => w.nAreaID === el.nAreaID).Select(s => (s.nEventID + \"\")).ToArray();\r\n return (\r\n \r\n \r\n \r\n {lstTableEventType.map((ex: { nEventTypeID: any; }, inexEX: string) => {\r\n let nCout = new LINQ(lstTableSummaryEventReportDatail).Where(w => w.nAreaID === el.nAreaID && w.nEventTypeID === ex.nEventTypeID).Count();\r\n let nEID: any = new LINQ(lstTableSummaryEventReportDatail).Where(w => w.nAreaID === el.nAreaID && w.nEventTypeID === ex.nEventTypeID).Select(s => (s.nEventID + \"\")).ToArray();\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 {lstTableEventType.map((ex: { nEventTypeID: any; }, inexEX: string) => {\r\n let nCout = new LINQ(lstTableSummaryEventReportDatail).Where(w => w.nEventTypeID === ex.nEventTypeID).Count();\r\n let nEID: any = new LINQ(lstTableSummaryEventReportDatail).Where(w => w.nEventTypeID === ex.nEventTypeID).Select(s => (s.nEventID + \"\")).ToArray();\r\n\r\n return ()\r\n })}\r\n\r\n \r\n \r\n\r\n \r\n \r\n
CompanyArea/Sub area{ParseHtml(el.sEventName + \"
(Report)\")}
Total
(Report)
Not Report
(Day)
{el.sCompanyName}{el.sAreaName}\r\n {nCout > 0 ? {nCout} : nCout}\r\n\r\n \r\n {arrTotallCout > 0 ? {arrTotallCout} : arrTotallCout}\r\n {el.nNotReport}
\"Test\"
Total\r\n {nCout > 0 ? {nCout} : nCout}\r\n \r\n {\r\n (new LINQ(lstTableSummaryEventReportDatail).Count()\r\n > 0 ? (lstTableSummaryEventReportDatail).Select(s => (s.nEventID + \"\")).ToArray().join(\",\")) + \"&Mode=\" + Encrypt(\"Report\")}> {new LINQ(lstTableSummaryEventReportDatail).Count()}\r\n : new LINQ(lstTableSummaryEventReportDatail).Count())\r\n }\r\n \r\n {\r\n // (new LINQ(lstTableSummaryEventReport).Sum(s => s.nNotReport))\r\n }\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n {/* Graph */}\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default ReportYearly;","import React, { Fragment, useEffect, useState, useRef } from 'react';\r\n// import { CardBody, Label, Table } from 'reactstrap';\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport { EventColorCompronent, MuiButtonSearch } from '../../SysComponent/MaterialComponent'\r\n// import { Link } from 'react-router-dom';\r\nimport { AxiosPost, ResultAPI, FnBlock_UI, NoPermission } from 'components/SysComponent/SystemComponent';\r\nimport {\r\n useStyles, MuiTableTableToolbar, MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order,\r\n PerPageOptions, StyledTableBody, stableSort, getComparator, MuiRowNoData, HeadCell, defaultPage\r\n} from '../../form/Table/CustomTable';\r\nimport {\r\n Grid, TableContainer, TableSortLabel, Typography, TablePagination,\r\n AccordionDetails\r\n} from '@material-ui/core';\r\nimport { TextFieldInputFreeText } from 'components/form/InputNoForm';\r\nimport SelectNoForm from 'components/form/SelectNoFormItem';\r\nimport { List as LINQ } from 'linqts';\r\nimport { faIgloo } from '@fortawesome/free-solid-svg-icons';\r\nimport DatePickerRangeNoForm from 'components/form/DatePickerRangeNoForm';\r\n\r\nconst dateFormat = require('dateformat');\r\nconst EventReportPlantOperation = (props) => {\r\n const { data, lstCompanyOperation } = props;\r\n //#region set State\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [page, setPage] = React.useState(0);\r\n const [rows, setRowData] = useState(data as any[]);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(defaultPage);\r\n const [order, setOrder] = React.useState('desc');\r\n const [orderBy, setOrderBy] = React.useState('dCreateDate');\r\n\r\n //#endregion\r\n\r\n const sController = \"DailyMonitoring\";\r\n const [selectDate, setSelectDate] = React.useState([new Date().setDate(new Date().getDate() - 30), new Date()]);\r\n const [MasterData, setMasterData] = React.useState({\r\n lstArea: [] as any[],\r\n lstEventType: [] as any[],\r\n });\r\n\r\n const [selectData, setSelectData] = React.useState({ EventGrupe: \"\", Compyne: \"\", Area: \"\", EventType: \"\", TextSerch: \"\" });\r\n\r\n const getArea = async (Compyne) => {\r\n let obj = {\r\n 'nEventGroup': 2,\r\n 'nCompyne': +Compyne,\r\n };\r\n await AxiosPost(sController + \"/LoadAreaData\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setMasterData({ ...MasterData, lstArea: response });\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n const getEvevtType = async (Area) => {\r\n let obj = {\r\n 'nEventGroup': 2,\r\n 'nArea': +Area,\r\n };\r\n await AxiosPost(sController + \"/LoadEventType\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setMasterData({ ...MasterData, lstEventType: response });\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n const getData = async () => {\r\n let obj = {\r\n 'nMode': 1,\r\n 'nEventGroup': 2,\r\n 'nCompyne': selectData.Compyne != \"\" ? +selectData.Compyne : null,\r\n 'nArea': selectData.Area != \"\" ? +selectData.Area : null,\r\n 'nEventType': selectData.EventType != \"\" ? +selectData.EventType : null,\r\n 'sText': selectData.TextSerch,\r\n 'sStartDate': dateFormat(selectDate[0], \"dd/mm/yyyy\"),\r\n 'sEndDate': dateFormat(selectDate[1], \"dd/mm/yyyy\"),\r\n 'nLevel':null,\r\n };\r\n\r\n \r\n await AxiosPost(sController + \"/GetDataReport\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setRowData(response.lstEventOperation);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n //#region Hear\r\n const headCells: HeadCell[] = [\r\n { id: 'dEventDate', numeric: true, disablePadding: true, label: 'Event Date', width: 11, isSort: true },\r\n { id: 'sCompanyName', numeric: true, disablePadding: true, label: 'Company', width: 10, isSort: true },\r\n { id: 'sAreaName', numeric: false, disablePadding: true, label: 'Area/Sub Area', width: 15, isSort: true },\r\n { id: 'nEventColorID', numeric: false, disablePadding: true, label: 'Status', width: 3, isSort: false },\r\n { id: 'sEventTypeName', numeric: false, disablePadding: false, label: 'Event Type', width: 15, isSort: true },\r\n { id: 'sDescription', numeric: true, disablePadding: false, label: 'Description', width: 10, isSort: true },\r\n { id: 'sReportby', numeric: true, disablePadding: false, label: 'Reporter', width: 15, isSort: true },\r\n { id: 'dCreateDate', numeric: true, disablePadding: false, label: 'Reporting Date', width: 12, isSort: true },\r\n\r\n\r\n ];\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n const Header = () => {\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n\r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n //#region set Body\r\n const BodyData = () => {\r\n return (\r\n \r\n\r\n {rows.length > 0 ? stableSort(rows, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((item, index) => {\r\n\r\n return (\r\n \r\n {dateFormat(item.dEventDate, \"dd/mm/yyyy\")}\r\n {item.sCompanyName}\r\n {item.sAreaName}\r\n \r\n {item.sEventTypeName}\r\n {item.sDescription}\r\n {item.sReportby}\r\n {dateFormat(item.dUpdate, \"dd/mm/yyyy HH:MM\")}\r\n \r\n );\r\n })\r\n :\r\n \r\n }\r\n \r\n )\r\n };\r\n //#endregion\r\n //#region set Pagination\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n rows.length > 0 ?\r\n \r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n //#region Fiter\r\n\r\n const Fiter = () => {\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n x.value === selectData.Compyne)}\r\n onChange={values => {\r\n setSelectData({ ...selectData, Compyne: (values != null ? values.value : \"\"), Area: \"\", EventType: \"\" });\r\n getArea((values != null ? values.value : \"\"));\r\n }} />\r\n \r\n \r\n x.value === selectData.Area)}\r\n onChange={values => {\r\n setSelectData({ ...selectData, Area: (values != null ? values.value : \"\"), EventType: \"\" });\r\n getEvevtType((values != null ? values.value : \"\"));\r\n }} />\r\n \r\n \r\n x.value === selectData.EventType)}\r\n onChange={values => { setSelectData({ ...selectData, EventType: (values != null ? values.value : \"\") }) }} />\r\n \r\n \r\n {\r\n setSelectDate(e);\r\n }}>\r\n \r\n \r\n { setSelectData({ ...selectData, TextSerch: val }) }} />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n };\r\n //#endregion\r\n\r\n return (\r\n \r\n \r\n }\r\n aria-label=\"Expand\"\r\n aria-controls=\"additional-actions1-content\"\r\n id=\"additional-actions1-header\"\r\n >\r\n
PTT Group Event Report: Operation [{rows.length}]
\r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\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 EventReportPlantOperation;\r\n","import React, { Fragment, useEffect, useState, useRef } from 'react';\r\n// import { CardBody, Label, Table } from 'reactstrap';\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport { EventColorCompronent, MuiButtonSearch, SecurityLevelColorCompronent } from '../../SysComponent/MaterialComponent'\r\n// import { Link } from 'react-router-dom';\r\nimport { AxiosPost, ResultAPI, FnBlock_UI, NoPermission } from 'components/SysComponent/SystemComponent';\r\nimport {\r\n useStyles, MuiTableTableToolbar, MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order,\r\n PerPageOptions, StyledTableBody, stableSort, getComparator, MuiRowNoData, HeadCell, defaultPage, StyledTableCell_Front\r\n} from '../../form/Table/CustomTable';\r\nimport {\r\n Grid, TableContainer, TableSortLabel, Typography, TablePagination,\r\n AccordionDetails\r\n} from '@material-ui/core';\r\nimport { TextFieldInputFreeText } from 'components/form/InputNoForm';\r\nimport SelectNoForm from 'components/form/SelectNoFormItem';\r\nimport { List as LINQ } from 'linqts';\r\nimport { faIgloo } from '@fortawesome/free-solid-svg-icons';\r\nimport DatePickerRangeNoForm from 'components/form/DatePickerRangeNoForm';\r\nconst dateFormat = require('dateformat');\r\n\r\nconst EventReportPlantSecurity = (props) => {\r\n const sController = \"DailyMonitoring\";\r\n\r\n //#region setState\r\n const { data, lstCompanySecurity, lstLavel } = props;\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [page, setPage] = React.useState(0);\r\n const [rows, setRowData] = useState(data as any[]);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(defaultPage);\r\n const [order, setOrder] = React.useState('desc');\r\n const [orderBy, setOrderBy] = React.useState('dCreateDate');\r\n const [MasterData, setMasterData] = React.useState({\r\n lstArea: [] as any[],\r\n lstEventType: [] as any[],\r\n });\r\n const [selectData, setSelectData] = React.useState({ EventGrupe: \"\", Compyne: \"\", Area: \"\", EventType: \"\", Lavel: \"\", TextSerch: \"\" });\r\n const [selectDate, setSelectDate] = React.useState([new Date().setDate(new Date().getDate() - 30), new Date()]);\r\n //#endregion\r\n\r\n const getData = async () => {\r\n let obj = {\r\n 'nMode': 1,\r\n 'nEventGroup': 3,\r\n 'nCompyne': selectData.Compyne != \"\" ? +selectData.Compyne : null,\r\n 'nArea': selectData.Area != \"\" ? +selectData.Area : null,\r\n 'nEventType': selectData.EventType != \"\" ? +selectData.EventType : null,\r\n 'sText': selectData.TextSerch,\r\n 'sStartDate': dateFormat(selectDate[0], \"dd/mm/yyyy\"),\r\n 'sEndDate': dateFormat(selectDate[1], \"dd/mm/yyyy\"),\r\n 'nLevel': selectData.Lavel != \"\" ? +selectData.Lavel : null,\r\n };\r\n\r\n await AxiosPost(sController + \"/GetDataReport\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n\r\n setRowData(response.lstEventSecurity);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n const getArea = async (Compyne) => {\r\n let obj = {\r\n 'nEventGroup': 3,\r\n 'nCompyne': +Compyne,\r\n };\r\n await AxiosPost(sController + \"/LoadAreaData\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setMasterData({ ...MasterData, lstArea: response });\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n const getEvevtType = async (Area) => {\r\n let obj = {\r\n 'nEventGroup': 3,\r\n 'nArea': +Area,\r\n };\r\n await AxiosPost(sController + \"/LoadEventType\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setMasterData({ ...MasterData, lstEventType: response });\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n\r\n //#region HearDate\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n const headCells: HeadCell[] = [\r\n { id: 'dEventDate', numeric: true, disablePadding: true, label: 'Event Date', width: 11, isSort: true },\r\n { id: 'sCompanyName', numeric: true, disablePadding: true, label: 'Company', width: 5, isSort: true },\r\n { id: 'sAreaName', numeric: false, disablePadding: true, label: 'Area/Sub Area', width: 15, isSort: true },\r\n { id: 'sSecurityLevelColor', numeric: false, disablePadding: true, label: 'Security Status', width: 2, isSort: false },\r\n { id: 'sSecurityLevelName', numeric: false, disablePadding: false, label: 'Security Level', width: 14, isSort: true },\r\n { id: 'nEventColorID', numeric: false, disablePadding: true, label: 'Status', width: 3, isSort: false },\r\n { id: 'sEventTypeName', numeric: false, disablePadding: false, label: 'Event Type', width: 15, isSort: true },\r\n { id: 'sDescription', numeric: true, disablePadding: false, label: 'Description', width: 10, isSort: true },\r\n { id: 'sReportby', numeric: true, disablePadding: false, label: 'Reporter', width: 10, isSort: true },\r\n { id: 'dCreateDate', numeric: true, disablePadding: false, label: 'Reporting Date', width: 12, isSort: true },\r\n\r\n\r\n ];\r\n\r\n const Header = () => {\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n\r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n //#region set Body\r\n const BodyData = () => {\r\n return (\r\n \r\n {rows.length > 0 ? stableSort(rows, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((item, index) => {\r\n return (\r\n \r\n {dateFormat(item.dEventDate, \"dd/mm/yyyy\")}\r\n {item.sCompanyName}\r\n {item.sAreaName}\r\n \r\n {item.sSecurityLevelName}\r\n \r\n {item.sEventTypeName}\r\n {item.sDescription}\r\n {item.sReportby}\r\n {dateFormat(item.dUpdate, \"dd/mm/yyyy HH:MM\")}\r\n\r\n\r\n \r\n );\r\n })\r\n :\r\n \r\n }\r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n //#region set Pagination\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n rows.length > 0 ?\r\n \r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n\r\n //#region Fiter\r\n const Fiter = () => {\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n x.value === selectData.Compyne)}\r\n onChange={values => {\r\n setSelectData({ ...selectData, Compyne: (values != null ? values.value : \"\"), Area: \"\", EventType: \"\" });\r\n getArea((values != null ? values.value : \"\"));\r\n }} />\r\n \r\n \r\n x.value === selectData.Area)}\r\n onChange={values => {\r\n setSelectData({ ...selectData, Area: (values != null ? values.value : \"\"), EventType: \"\" });\r\n getEvevtType((values != null ? values.value : \"\"));\r\n }} />\r\n \r\n \r\n x.value === selectData.EventType)}\r\n onChange={values => { setSelectData({ ...selectData, EventType: (values != null ? values.value : \"\") }) }} />\r\n \r\n \r\n x.value === selectData.Lavel)}\r\n onChange={values => { setSelectData({ ...selectData, Lavel: (values != null ? values.value : \"\") }) }} />\r\n \r\n \r\n {\r\n setSelectDate(e);\r\n }}>\r\n \r\n \r\n { setSelectData({ ...selectData, TextSerch: val }) }} />\r\n \r\n \r\n \r\n {/* onClick={LoadData} */}\r\n \r\n \r\n \r\n\r\n )\r\n };\r\n //#endregion\r\n return (\r\n \r\n \r\n }\r\n aria-label=\"Expand\"\r\n aria-controls=\"additional-actions1-content\"\r\n id=\"additional-actions1-header\"\r\n >\r\n\r\n
PTT Group Event Report: Security [{rows.length}]
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\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 EventReportPlantSecurity;\r\n","import React, { Fragment, useEffect, useState, useRef } from 'react';\r\n// import { CardBody, Label, Table } from 'reactstrap';\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport { EventColorCompronent, MuiButtonSearch } from '../../SysComponent/MaterialComponent'\r\n// import { Link } from 'react-router-dom';\r\nimport { AxiosPost, ResultAPI, FnBlock_UI, NoPermission } from 'components/SysComponent/SystemComponent';\r\nimport {\r\n useStyles, MuiTableTableToolbar, MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order,\r\n PerPageOptions, StyledTableBody, stableSort, getComparator, MuiRowNoData, HeadCell, defaultPage\r\n} from '../../form/Table/CustomTable';\r\nimport {\r\n Grid, TableContainer, TableSortLabel, Typography, TablePagination,\r\n AccordionDetails\r\n} from '@material-ui/core';\r\nimport { TextFieldInputFreeText } from 'components/form/InputNoForm';\r\nimport SelectNoForm from 'components/form/SelectNoFormItem';\r\nimport { List as LINQ } from 'linqts';\r\nimport { faIgloo } from '@fortawesome/free-solid-svg-icons';\r\nimport DatePickerRangeNoForm from 'components/form/DatePickerRangeNoForm';\r\nconst dateFormat = require('dateformat');\r\nconst EventReportCSR = (props) => {\r\n const { data, lstCompanyCSR } = props;\r\n //#region set State\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [page, setPage] = React.useState(0);\r\n const [rows, setRowData] = useState(data as any[]);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(defaultPage);\r\n const [order, setOrder] = React.useState('desc');\r\n const [orderBy, setOrderBy] = React.useState('dCreateDate');\r\n\r\n //#endregion\r\n\r\n const sController = \"DailyMonitoring\";\r\n const [selectDate, setSelectDate] = React.useState([new Date().setDate(new Date().getDate() - 30), new Date()]);\r\n const [MasterData, setMasterData] = React.useState({\r\n lstArea: [] as any[],\r\n lstEventType: [] as any[],\r\n });\r\n\r\n const [selectData, setSelectData] = React.useState({ EventGrupe: \"\", Compyne: \"\", Area: \"\", EventType: \"\", TextSerch: \"\" });\r\n\r\n const getArea = async (Compyne) => {\r\n let obj = {\r\n 'nEventGroup': 1,\r\n 'nCompyne': +Compyne,\r\n };\r\n\r\n\r\n await AxiosPost(sController + \"/LoadAreaData\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setMasterData({ ...MasterData, lstArea: response });\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n const getEvevtType = async (Area) => {\r\n let obj = {\r\n 'nEventGroup': 1,\r\n 'nArea': +Area,\r\n };\r\n await AxiosPost(sController + \"/LoadEventType\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setMasterData({ ...MasterData, lstEventType: response });\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n const getData = async () => {\r\n let obj = {\r\n 'nMode': 1,\r\n 'nEventGroup': 1,\r\n 'nCompyne': selectData.Compyne != \"\" ? +selectData.Compyne : null,\r\n 'nArea': selectData.Area != \"\" ? +selectData.Area : null,\r\n 'nEventType': selectData.EventType != \"\" ? +selectData.EventType : null,\r\n 'sText': selectData.TextSerch,\r\n 'sStartDate': dateFormat(selectDate[0], \"dd/mm/yyyy\"),\r\n 'sEndDate': dateFormat(selectDate[1], \"dd/mm/yyyy\"),\r\n 'nLevel': null,\r\n };\r\n await AxiosPost(sController + \"/GetDataReport\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setRowData(response.lstEventCSR);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n //#region Herd\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n const headCells: HeadCell[] = [\r\n { id: 'dEventDate', numeric: true, disablePadding: true, label: 'Event Date', width: 11, isSort: true },\r\n { id: 'sCompanyName', numeric: true, disablePadding: true, label: 'Company', width: 10, isSort: true },\r\n { id: 'sAreaName', numeric: false, disablePadding: true, label: 'Area/Sub Area', width: 15, isSort: true },\r\n { id: 'nEventColorID', numeric: false, disablePadding: true, label: 'Status', width: 3, isSort: false },\r\n { id: 'sEventTypeName', numeric: false, disablePadding: false, label: 'Event Type', width: 15, isSort: true },\r\n { id: 'sDescription', numeric: true, disablePadding: false, label: 'Description', width: 10, isSort: true },\r\n { id: 'sReportby', numeric: true, disablePadding: false, label: 'Reporter', width: 15, isSort: true },\r\n { id: 'dCreateDate', numeric: true, disablePadding: false, label: 'Reporting Date', width: 12, isSort: true },\r\n ];\r\n\r\n const Header = () => {\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n return (\r\n \r\n \r\n\r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n\r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n //#region set Body\r\n const BodyData = () => {\r\n return (\r\n \r\n\r\n {rows.length > 0 ? stableSort(rows, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((item, index) => {\r\n return (\r\n \r\n {dateFormat(item.dEventDate, \"dd/mm/yyyy\")}\r\n {item.sCompanyName}\r\n {item.sAreaName}\r\n \r\n {item.sEventTypeName}\r\n {item.sDescription}\r\n {item.sReportby}\r\n {dateFormat(item.dUpdate, \"dd/mm/yyyy HH:MM\")}\r\n \r\n );\r\n })\r\n :\r\n \r\n }\r\n \r\n )\r\n };\r\n //#endregion\r\n //#region set Pagination\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n rows.length > 0 ?\r\n \r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n //#region Fiter\r\n\r\n const Fiter = () => {\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n x.value === selectData.Compyne)}\r\n onChange={values => {\r\n setSelectData({ ...selectData, Compyne: (values != null ? values.value : \"\"), Area: \"\", EventType: \"\" });\r\n getArea((values != null ? values.value : \"\"));\r\n }} />\r\n \r\n \r\n x.value === selectData.Area)}\r\n onChange={values => {\r\n setSelectData({ ...selectData, Area: (values != null ? values.value : \"\"), EventType: \"\" });\r\n getEvevtType((values != null ? values.value : \"\"));\r\n }} />\r\n \r\n \r\n x.value === selectData.EventType)}\r\n onChange={values => { setSelectData({ ...selectData, EventType: (values != null ? values.value : \"\") }) }} />\r\n \r\n \r\n {\r\n setSelectDate(e);\r\n }}>\r\n \r\n \r\n { setSelectData({ ...selectData, TextSerch: val }) }} />\r\n \r\n\r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n return (\r\n \r\n \r\n }\r\n aria-label=\"Expand\"\r\n aria-controls=\"additional-actions1-content\"\r\n id=\"additional-actions1-header\"\r\n >\r\n\r\n
PTT Group Event Report: CSR [{rows.length}]
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\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 EventReportCSR;\r\n","import React, { Fragment, useState, useCallback, useEffect } from 'react';\r\nimport { Paper } from '@material-ui/core';\r\nimport EventReportPlantOperation from './EventReportPlantOperation';\r\nimport EventReportPlantSecurity from './EventReportPlantSecurity';\r\nimport EventReportCSR from './EventReportCSR';\r\nimport { AxiosPost, ResultAPI, FnBlock_UI, NoPermission } from 'components/SysComponent/SystemComponent';\r\nimport {\r\n useStyles\r\n} from '../../form/Table/CustomTable';\r\nconst dateFormat = require('dateformat');\r\nconst DailyMonitoringReport = () => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const sController = \"DailyMonitoring\";\r\n const [MasterData, setMasterData] = React.useState({\r\n lstEventCSR: [] as any[],\r\n lstCompanyCSR:[] as any[],\r\n lstEventOperation:[] as any[],\r\n lstCompanyOperation: [] as any[],\r\n lstEventSecurity: [] as any[],\r\n lstCompanySecurity: [] as any[],\r\n lstLavel: [] as any[],\r\n lstEventGrupID:[] as any[]\r\n });\r\n //#region setState\r\n const classes = useStyles();\r\n\r\n const LoadData = () => {\r\n let obj = {\r\n 'nMode': 0,\r\n 'nEventGroup': null,\r\n 'nEventType': null,\r\n 'nArea': null,\r\n 'nCompyne': null,\r\n 'nLavel': null,\r\n 'sStartDate': dateFormat(new Date().setDate(new Date().getDate() - 30), \"dd/mm/yyyy\"),\r\n 'sEndDate': dateFormat(new Date(), \"dd/mm/yyyy\"),\r\n\r\n };\r\n AxiosPost(sController + \"/LoadMaster\", obj, (res) => {\r\n ResultAPI(false, res, null, () => {\r\n setMasterData({...MasterData,\r\n lstEventCSR: res.lstEventCSR,\r\n lstCompanyCSR:res.lstCompanyCSR,\r\n lstEventOperation:res.lstEventOperation,\r\n lstCompanyOperation:res.lstCompanyOperation,\r\n lstEventSecurity:res.lstEventSecurity,\r\n lstCompanySecurity:res.lstCompanySecurity,\r\n lstLavel:res.lstSecurityLevel,\r\n lstEventGrupID: res.lstEventGrupID});\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n const EventReportPlantSecurity_ =useCallback(()=>{\r\n return ( )\r\n },[MasterData.lstEventSecurity]);\r\n\r\n const EventReportPlantOperation_ =useCallback(()=>{\r\n return ( )\r\n },[MasterData.lstEventOperation]);\r\n\r\n const EventReportCSR_ =useCallback(()=>{\r\n return ( )\r\n },[MasterData.lstEventCSR]);\r\n\r\n //#endregion Function\r\n return (\r\n \r\n
\r\n \r\n {MasterData.lstEventGrupID.filter(w=> w === 2).length>0&&}\r\n {MasterData.lstEventGrupID.filter(w=> w === 3).length>0&& }\r\n {MasterData.lstEventGrupID.filter(w=> w === 1).length>0&&}\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default DailyMonitoringReport;\r\n","import React, { Fragment, useEffect, useState } from 'react';\r\nimport DailyMonitoringReport from './DailyMonitoringReportComponent/DailyMonitoringReport';\r\nconst Home = () => {\r\n\r\n return (\r\n \r\n {/*

Home

*/}\r\n \r\n
\r\n )\r\n}\r\nexport default Home;","import React, { Fragment,useEffect } from 'react'\r\nimport { FnBlock_UI } from '../SysComponent/SystemComponent';\r\nimport {\r\n Grid, TableContainer, TableSortLabel, TablePagination,\r\n DialogContent, DialogActions\r\n} from '@material-ui/core';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport Button from '@material-ui/core/Button';\r\nimport {\r\n useStyles, MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order,\r\n PerPageOptions, StyledTableBody, stableSort, getComparator, MuiRowNoData, HeadCell\r\n} from '../form/Table/CustomTable';\r\nconst dateFormat = require('dateformat');\r\nexport interface SubEventTypeProps {\r\n open: boolean;\r\n onClose: (value: string) => void;\r\n rows: any[];\r\n}\r\n\r\nexport const DialogComWorkTime = (props: SubEventTypeProps) => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('dUpdateDate');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\r\n const { onClose, open, rows } = props;\r\n\r\n const handleClose = () => {\r\n onClose(\"\");\r\n };\r\n\r\n useEffect(() => {\r\n setPage(0);\r\n setRowsPerPage(10);\r\n }, [rows]);\r\n\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n //#region set Header\r\n const headCells: HeadCell[] = [\r\n { id: 'No', numeric: true, disablePadding: true, label: 'No.', width: 5, isSort: false },\r\n { id: 'sWorkingTime', numeric: false, disablePadding: true, label: 'Name', width: 50, isSort: true },\r\n { id: 'sStartTime', numeric: false, disablePadding: true, label: 'Time Start - Time End', width: 30, isSort: true },\r\n // { id: 'dUpdate', numeric: true, disablePadding: false, label: 'Last Update', width: 25, isSort: true },\r\n ];\r\n\r\n const Header = () => {\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n //#region set Body\r\n const BodyData = () => {\r\n return (\r\n \r\n\r\n {rows.length > 0 ? stableSort(rows, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((row, index) => {\r\n return (\r\n \r\n {(rowsPerPage * (page)) + (index + 1)}\r\n {row.sWorkingTime}\r\n {row.sStartTime +\" - \"+ row.sEndTime}\r\n \r\n );\r\n })\r\n :\r\n \r\n }\r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n //#region set Pagination\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n rows.length > 0 ?\r\n \r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n return (\r\n \r\n Working Time\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}","import React, { Fragment,useEffect } from 'react'\r\nimport { FnBlock_UI } from '../SysComponent/SystemComponent';\r\nimport {\r\n Grid, TableContainer, TableSortLabel, TablePagination,\r\n DialogContent, DialogActions\r\n} from '@material-ui/core';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport Button from '@material-ui/core/Button';\r\nimport {\r\n useStyles, MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order,\r\n PerPageOptions, StyledTableBody, stableSort, getComparator, MuiRowNoData, HeadCell\r\n} from '../form/Table/CustomTable';\r\nimport { EventColorCompronent } from 'components/SysComponent/MaterialComponent';\r\nconst dateFormat = require('dateformat');\r\nexport interface SubEventTypeProps {\r\n open: boolean;\r\n onClose: (value: string) => void;\r\n rows: any[];\r\n}\r\n\r\nexport const DialogComEventType = (props: SubEventTypeProps) => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('dUpdateDate');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\r\n const { onClose, open, rows } = props;\r\n\r\n const handleClose = () => {\r\n onClose(\"\");\r\n };\r\n useEffect(() => {\r\n setPage(0);\r\n setRowsPerPage(10);\r\n }, [rows]);\r\n\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n //#region set Header\r\n const headCells: HeadCell[] = [\r\n { id: 'No', numeric: true, disablePadding: true, label: 'No.', width: 5, isSort: false },\r\n { id: '', numeric: true, disablePadding: false, label: '', width: 5, isSort: true },\r\n { id: 'sEventGroupName', numeric: false, disablePadding: true, label: 'Event Group', width: 20, isSort: true },\r\n { id: 'sEventTypeName', numeric: false, disablePadding: true, label: 'Event Type', width: 60, isSort: true },\r\n // { id: 'dUpdate', numeric: true, disablePadding: false, label: 'Last Update', width: 25, isSort: true },\r\n ];\r\n\r\n const Header = () => {\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n //#region set Body\r\n const BodyData = () => {\r\n return (\r\n \r\n\r\n {rows.length > 0 ? stableSort(rows, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((row, index) => {\r\n return (\r\n \r\n {(rowsPerPage * (page)) + (index + 1)}\r\n \r\n {row.sEventGroupName}\r\n {row.sEventTypeName}\r\n \r\n );\r\n })\r\n :\r\n \r\n }\r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n //#region set Pagination\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n rows.length > 0 ?\r\n \r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n return (\r\n \r\n Event Type\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}","import React, { Fragment } from 'react'\r\nimport { FnBlock_UI } from '../SysComponent/SystemComponent';\r\nimport {\r\n Grid, TableContainer, TableSortLabel, TablePagination,\r\n DialogContent, DialogActions\r\n} from '@material-ui/core';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport Button from '@material-ui/core/Button';\r\nimport {\r\n useStyles, MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order,\r\n PerPageOptions, StyledTableBody, stableSort, getComparator, MuiRowNoData, HeadCell\r\n} from '../form/Table/CustomTable';\r\nconst dateFormat = require('dateformat');\r\nexport interface SubEventTypeProps {\r\n open: boolean;\r\n onClose: (value: string) => void;\r\n rows: any[];\r\n}\r\n\r\nexport const DialogSubsidary = (props: SubEventTypeProps) => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('dUpdateDate');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\r\n const { onClose, open, rows } = props;\r\n\r\n const handleClose = () => {\r\n onClose(\"\");\r\n };\r\n\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n //#region set Header\r\n const headCells: HeadCell[] = [\r\n { id: 'No', numeric: true, disablePadding: true, label: 'No.', width: 5, isSort: false },\r\n { id: 'sCompanyName', numeric: false, disablePadding: true, label: 'Name', width: 50, isSort: true },\r\n { id: 'dUpdateDate', numeric: false, disablePadding: true, label: 'Last Update', width: 20, isSort: true },\r\n // { id: 'dUpdate', numeric: true, disablePadding: false, label: 'Last Update', width: 25, isSort: true },\r\n ];\r\n\r\n const Header = () => {\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n //#region set Body\r\n const BodyData = () => {\r\n return (\r\n \r\n\r\n {rows.length > 0 ? stableSort(rows, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((row, index) => {\r\n return (\r\n \r\n {index + 1}\r\n {row.sCompanyName}\r\n {dateFormat(new Date(row.dUpdateDate), \"dd/mm/yyyy\")}\r\n {/* {row.dUpdateDate +\" - \"+ row.sEndTime} */}\r\n \r\n );\r\n })\r\n :\r\n \r\n }\r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n //#region set Pagination\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n rows.length > 0 ?\r\n \r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n return (\r\n \r\n Subsidary\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}","import React, { Fragment, useEffect } from 'react';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { Link } from 'react-router-dom';\r\nimport { Encrypt, AxiosPost, ResultAPI, FnBlock_UI, DialogConfirmDelete, NoPermission, AxiosPostExportFile } from 'components/SysComponent/SystemComponent';\r\nimport { MuiButtonSearch, MuiButtonEdite, MuiButtonAdd, MuiButtonDelete, MuiIconButtonItem, MuiIconCheckBoxDelete, MuiButtonExport, MuiButtonView } from '../SysComponent/MaterialComponent'\r\nimport {\r\n useStyles, MuiTableTableToolbar, MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order,\r\n PerPageOptions, StyledTableBody, stableSort, getComparator, MuiRowNoData, HeadCell,defaultPage\r\n} from '../form/Table/CustomTable';\r\nimport { Paper, Grid, TableContainer, TableSortLabel, Typography, TablePagination } from '@material-ui/core';\r\n// import { List as LINQ } from 'linqts';\r\nimport SelectNoForm from '../form/SelectNoFormItem';\r\nimport { TextFieldInputFreeText } from '../form/InputNoForm';\r\nimport { DialogComWorkTime } from '../DialogComponents/DialogComWorkTime';\r\nimport { DialogComEventType } from '../DialogComponents/DialogComEventType';\r\nimport { DialogSubsidary } from '../DialogComponents/DialogSubsidary';\r\nimport axios from 'axios'\r\nconst sController = \"Company\";\r\nconst dateFormat = require('dateformat');\r\nconst Company = () => {\r\n\r\n //#region useState\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('nOrder');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(defaultPage);\r\n const isSelected = (ID: number) => selected.indexOf(ID) !== -1;\r\n const [rows, setRowData] = React.useState([] as any[]);\r\n const [sTxtSearch, setsTxtSearch] = React.useState(\"\");\r\n const [lstWorkTime, setlstWorkTime] = React.useState([] as any[]);\r\n const [lstEventData, setlstEventData] = React.useState([] as any[]);\r\n const [lstSubsidary, setlstSubsidary] = React.useState([] as any[]);\r\n const [nPermission, setPermission] = React.useState(0);\r\n const [lstCompany, setCompany] = React.useState([] as any[]);\r\n const [CompanyID, setCompanyID] = React.useState(\"\");\r\n const [lstOrder, setlstOrder] = React.useState([] as any[]);\r\n //#endregion\r\n\r\n //#region on Load\r\n const LoadData = () => {\r\n let qbj = {\r\n sTxtSearch: sTxtSearch,\r\n SearchCompanyID: (+CompanyID) > 0 ? +CompanyID : null,\r\n };\r\n AxiosPost(sController + \"/LoadCompanyListData\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n\r\n if (response.n_Permission === 0) {\r\n NoPermission();\r\n } else {\r\n setPermission(response.n_Permission);// setlstWorkTime(response.lstWorkTime);\r\n // setlstEventData(response.lstEventData);\r\n setRowData(response.lstCompany);\r\n setCompany(response.lstCompyne);\r\n setPage(0);\r\n setRowsPerPage(defaultPage);\r\n setlstOrder(response.lstOrder);\r\n }\r\n // console.log()\r\n\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n\r\n }\r\n\r\n //#region ExportData \r\n const ExportExcel = async () => {\r\n let obj = {\r\n sTxtSearch: sTxtSearch,\r\n SearchCompanyID: (+CompanyID) > 0 ? +CompanyID : null,\r\n };\r\n let fileName = \"2.Company_Export_\"+ dateFormat(new Date(), \"ddMMyyyyHHmm\") + \".xlsx\";\r\n\r\n await AxiosPostExportFile(sController + \"/ExportExcel\", obj, fileName, () => { }, BlockUI, UnBlockUI);\r\n }\r\n //endregion end ExportData\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n //#endregion\r\n\r\n //#region event\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const handleSelectAllClick = (event: React.ChangeEvent) => {\r\n if (event.target.checked) {\r\n const newSelecteds = rows.map((n) => n.nEditID);\r\n setSelected(newSelecteds);\r\n return;\r\n }\r\n setSelected([]);\r\n };\r\n\r\n const handleClick = (event: React.MouseEvent, ID: any) => {\r\n const selectedIndex = selected.indexOf(ID);\r\n let newSelected: number[] = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, ID);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n setSelected(newSelected);\r\n };\r\n const onDelete = () => {\r\n DialogConfirmDelete(() => {\r\n let qbj = { lstCompanyID: selected };\r\n AxiosPost(sController + \"/DeleteCompanyListData\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n LoadData();\r\n setSelected([]);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n };\r\n //#endregion\r\n\r\n //#region set Header\r\n const headCells: HeadCell[] = [\r\n { id: 'No', numeric: true, disablePadding: true, label: 'No.', width: 5, isSort: false },\r\n { id: 'nOrder', numeric: true, disablePadding: true, label: 'Order', width: 15, isSort: true },\r\n { id: 'sCompanyName', numeric: false, disablePadding: true, label: 'Company Name or CSR Area', width: 25, isSort: true },\r\n { id: 'sHeadNameCompany', numeric: false, disablePadding: false, label: 'Head Company', width: 15, isSort: true },\r\n { id: 'nCountSubsidiary', numeric: false, disablePadding: false, label: 'Subsidiary', width: 8, isSort: false },\r\n { id: 'nCountWorkingTime', numeric: false, disablePadding: false, label: 'Working Time', width: 10, isSort: false },\r\n { id: 'nCountEventType', numeric: true, disablePadding: false, label: 'Event Type', width: 10, isSort: false },\r\n { id: 'sUpdateBy', numeric: true, disablePadding: false, label: 'Updated By', width: 20, isSort: true },\r\n { id: 'dUpdateDate', numeric: true, disablePadding: false, label: 'Last Update', width: 12, isSort: true },\r\n\r\n ];\r\n\r\n //#region Popup\r\n const [open, setOpen] = React.useState({ EventType: false, Remark: false });\r\n const [openEvent, setOpenEvent] = React.useState({ EventType: false, Remark: false });\r\n const [openSubsidary, setOpenSubsidary] = React.useState({ EventType: false, Remark: false });\r\n const handleClose = (value: string) => {\r\n setOpen({ ...open, EventType: false });\r\n };\r\n const handleCloseEvent = (value: string) => {\r\n setOpenEvent({ ...openEvent, EventType: false });\r\n };\r\n const handleCloseSubsidary = (value: string) => {\r\n setOpenSubsidary({ ...openSubsidary, EventType: false });\r\n };\r\n const popupWorkTime = (SubType) => {\r\n\r\n setOpen({ ...open, EventType: true });\r\n setlstWorkTime([...SubType]);\r\n };\r\n const popupEventData = (SubType) => {\r\n\r\n setOpenEvent({ ...openEvent, EventType: true });\r\n setlstEventData([...SubType]);\r\n };\r\n const popupSubsidary = (SubType) => {\r\n\r\n setOpenSubsidary({ ...openSubsidary, EventType: true });\r\n setlstSubsidary([...SubType]);\r\n };\r\n //#endregion\r\n\r\n const Header = () => {\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n {/* \r\n 0 && selected.length < rows.length}\r\n checked={rows.length > 0 && selected.length === rows.length}\r\n onChange={handleSelectAllClick}\r\n inputProps={{ 'aria-label': 'select all desserts' }}\r\n />\r\n */}\r\n {nPermission === 2 && \r\n 0 && selected.length < rows.length}\r\n checked={rows.length > 0 && selected.length === rows.length}\r\n onChange={handleSelectAllClick}\r\n />\r\n\r\n }\r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n \r\n {nPermission === 2 && \r\n \r\n }\r\n \r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n const ChangeOrder = (from,to,nID) => {\r\n console.log(\"from\", from)\r\n console.log(\"to\", to)\r\n console.log(\"nID\", nID)\r\n if (from != to) {\r\n let qbj = {\r\n sFrom: from,\r\n sTo: to,\r\n sTableName: \"company\",\r\n nID: nID\r\n };\r\n AxiosPost(sController + \"/SaveChangeOrder\", qbj, (response) => {\r\n ResultAPI(true, response, null, () => {\r\n LoadData();\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n } \r\n }\r\n\r\n //#region set Body\r\n const BodyData = () => {\r\n return (\r\n \r\n\r\n {rows.length > 0 ? stableSort(rows, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((row, index) => {\r\n const isItemSelected = isSelected(+row.nEditID);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n\r\n return (\r\n \r\n {nPermission === 2 && \r\n handleClick(event, row.nEditID)}\r\n inputProps={{ 'aria-labelledby': labelId }}\r\n />\r\n }\r\n\r\n {(rowsPerPage * (page)) + (index + 1)}\r\n \r\n \r\n x.value === row.nOrder + \"\")}\r\n isClearable={false}\r\n onChange={values => {\r\n ChangeOrder(row.nOrder + \"\", values.value, row.nEditID)\r\n }}\r\n disable={nPermission !==2}\r\n />\r\n \r\n {row.sCompanyName}\r\n {row.sHeadNameCompany}\r\n {(row.lstSubsidary as any).length > 0 && { popupSubsidary(row.lstSubsidary) }} />}\r\n {(row.lstWorkTime as any).length > 0 && { popupWorkTime(row.lstWorkTime) }} />}\r\n {(row.lstEventData as any).length > 0 && { popupEventData(row.lstEventData) }} />}\r\n {row.sUpdateBy} \r\n \r\n {/* {new Intl.DateTimeFormat(\"en-GB\", {\r\n year: \"numeric\",\r\n month: \"numeric\",\r\n day: \"2-digit\",\r\n }).format(new Date(row.dUpdateDate))} */}\r\n {/*{dateFormat(row.dUpdateDate, \"dd/mm/yyyy HH:mm\")}*/}\r\n {dateFormat(row.dUpdateDate, \"dd/mm/yyyy\")}\r\n \r\n \r\n {nPermission === 2 && \r\n \r\n }\r\n {nPermission === 1 && \r\n \r\n }\r\n\r\n \r\n \r\n );\r\n })\r\n :\r\n \r\n }\r\n \r\n\r\n )\r\n };\r\n //#endregion\r\n\r\n //#region set Pagination \r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n rows.length > 0 ?\r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n )}\r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n Selected ({selected.length}) Row\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n\r\n //#region Fiter\r\n\r\n const Fiter = () => {\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n { setsTxtSearch(val) }} />\r\n \r\n \r\n x.value === CompanyID)}\r\n isClearable={true}\r\n onChange={values => { setCompanyID(values != null ? values.value : null) }}\r\n />\r\n\r\n \r\n \r\n {/* style={{ width: \"100%\" }} */}\r\n \r\n \r\n \r\n
\r\n {rows.length > 0 ?
\r\n { ExportExcel() }} />\r\n
: }\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n )\r\n };\r\n //#endregion\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\n\r\nexport default Company;","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport FormErrors from \"./formErrors\";\r\nimport { FastField } from \"formik\";\r\nimport { TextField } from \"@material-ui/core\";\r\nimport '../../Styles/Fonts/Kanit/css/fonts.css';\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nconst StyledInput = withStyles({\r\n root: {\r\n width: \"100%\",\r\n // top: \"4px\",\r\n\r\n // '& .MuiOutlinedInput-root': {\r\n // '& fieldset': {\r\n // borderRadius: \"0px\",\r\n // },\r\n // fontSize: \"14px\",\r\n // color: \"rgba(0, 0, 0, 0.87)\"\r\n // },\r\n // background: theme.palette.common.white,\r\n // \"& .MuiInputBase-root.Mui-disabled\": {\r\n // background: theme.palette.action.hover,\r\n // },\r\n \"& .MuiOutlinedInput-inputMarginDense\": {\r\n // paddingTop: \"8px\",\r\n // paddingBottom: \"8px\"\r\n minHeight: \"24px\",\r\n },\r\n \"& .MuiInputLabel-outlined\": {\r\n top: 1,\r\n }\r\n // width: \"100%\"\r\n }\r\n}) ((props) => );\r\n\r\nexport class InputFormItemNotFast extends Component {\r\n\r\n render() {\r\n // const requires =
require
;\r\n const {\r\n label,\r\n name,\r\n form,\r\n hint,\r\n type,\r\n placeholder,\r\n autoFocus,\r\n autoComplete,\r\n inputProps,\r\n disable,\r\n errorMessage,\r\n required,\r\n readonly,\r\n size,\r\n } = this.props;\r\n\r\n return (\r\n {\r\n form.setFieldValue(name, event.target.value);\r\n // form.setFieldTouched(name);\r\n\r\n }}\r\n onFocus={() => {\r\n form.setFieldTouched(name);\r\n }\r\n }\r\n value={form.values[name] || \"\"}\r\n disabled={disable || false}\r\n placeholder={placeholder || undefined}\r\n autoFocus={autoFocus || undefined}\r\n //autoComplete={autoComplete || undefined}\r\n autoComplete={\"disabled\"}\r\n InputLabelProps={{\r\n //shrink: true, \r\n }}\r\n InputProps={{\r\n readOnly: readonly || false,\r\n }}\r\n\r\n error={!!FormErrors.displayableError(form, name, errorMessage)}\r\n helperText={\r\n FormErrors.displayableError(form, name, errorMessage) || hint\r\n }\r\n\r\n {...inputProps}\r\n />\r\n );\r\n }\r\n}\r\n\r\nInputFormItemNotFast.defaultProps = {\r\n type: \"text\",\r\n required: false,\r\n};\r\n\r\nInputFormItemNotFast.propTypes = {\r\n form: PropTypes.object.isRequired,\r\n name: PropTypes.string.isRequired,\r\n required: PropTypes.bool,\r\n readonly: PropTypes.bool,\r\n type: PropTypes.string,\r\n label: PropTypes.string,\r\n hint: PropTypes.string,\r\n autoFocus: PropTypes.bool,\r\n prefix: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n inputProps: PropTypes.object,\r\n size: PropTypes.string,\r\n};\r\n\r\nclass InputFormItem extends Component {\r\n render() {\r\n\r\n return (\r\n }\r\n />\r\n );\r\n }\r\n}\r\n\r\nexport default InputFormItem;\r\n","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport FormErrors from \"./formErrors\";\r\nimport { Field } from \"formik\";\r\nimport '../../Styles/Fonts/Kanit/css/fonts.css';\r\nimport {\r\n FormLabel,\r\n RadioGroup,\r\n Radio,\r\n FormControlLabel,\r\n FormControl,\r\n FormHelperText,\r\n withStyles\r\n} from \"@material-ui/core\";\r\n\r\nconst GreenRadio = withStyles({\r\n root: {\r\n // color: green[400],\r\n // '&$checked': {\r\n // color: green[600],\r\n // },\r\n fontFamily: \"Kanit\"\r\n },\r\n checked: {},\r\n})((props) => );\r\n\r\nclass RadioFormItemNotFast extends Component {\r\n render() {\r\n const {\r\n label,\r\n name,\r\n form,\r\n hint,\r\n options,\r\n errorMessage,\r\n required,\r\n defaultValue,\r\n onChangedCallback,\r\n disable,\r\n } = this.props;\r\n\r\n const formHelperText =\r\n FormErrors.displayableError(form, name, errorMessage) || hint;\r\n\r\n return (\r\n \r\n \r\n {label}\r\n {\r\n form.setFieldValue(name, e.target.value);\r\n form.setFieldTouched(name);\r\n if (onChangedCallback != undefined) {\r\n onChangedCallback(e.target.value);\r\n }\r\n }}\r\n row\r\n //defaultValue={defaultValue}\r\n values={defaultValue}\r\n >\r\n \r\n {\r\n options.map((option,index) => (\r\n \r\n }\r\n style={{fontFamily: \"Kanit\"}}\r\n label={option.label}\r\n />\r\n ))}\r\n\r\n \r\n {formHelperText && (\r\n \r\n {formHelperText}\r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nRadioFormItemNotFast.defaultProps = {\r\n required: false,\r\n};\r\n\r\nRadioFormItemNotFast.propTypes = {\r\n form: PropTypes.object.isRequired,\r\n name: PropTypes.string.isRequired,\r\n options: PropTypes.array.isRequired,\r\n label: PropTypes.string,\r\n hint: PropTypes.string,\r\n required: PropTypes.bool,\r\n errorMessage: PropTypes.string,\r\n onChangedCallback: PropTypes.func\r\n};\r\n\r\nclass RadioFormItem extends Component {\r\n render() {\r\n return (\r\n (\r\n \r\n )}\r\n />\r\n );\r\n }\r\n}\r\n\r\nexport default RadioFormItem;\r\n","import React, { Fragment, useEffect, useState, forwardRef, useCallback } from \"react\";\r\nimport { Formik, Form } from \"formik\";\r\nimport * as yup from \"yup\";\r\nimport { Grid, Paper, TableContainer } from '@material-ui/core';\r\nimport SelectFormItem from \"../form/SelectFormItem\";\r\nimport InputFormItem from \"components/form/InputFormItem\";\r\nimport { List as LINQ } from \"linqts\";\r\nimport {\r\n FnBlock_UI, AxiosPost, ResultAPI, AlertMsg, MsgValidate,\r\n MsgValidateMaxLength, scrollToElementValidate, BackToComponent,\r\n Effect, SwAlert, AlertTitle, resetFromData, DialogConfirmDelete, resetFromSubmitData, DialogConfirm, Decrypt, NoPermission\r\n} from 'components/SysComponent/SystemComponent';\r\nimport { MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, StyledTableBody, MuiRowNoData } from '../form/Table/CustomTable';\r\nimport TimePickerFormItem from '../form/TimePickerFormItem'\r\nimport ArrowDownward from \"@material-ui/icons/ArrowDownward\";\r\nimport Check from \"@material-ui/icons/Check\";\r\nimport ChevronRight from \"@material-ui/icons/ChevronRight\";\r\nimport FilterList from \"@material-ui/icons/FilterList\";\r\nimport Search from \"@material-ui/icons/Search\";\r\nimport RadioFormItem from \"../form/RadioFormItem\";\r\nimport Clear from '@material-ui/icons/Clear';\r\nimport { MuiButtonSave, MuiButtonCancel, MuiButtonClear, MuiIconButtonDelete, EventColorCompronent, MuiButtonConfirm, MuiIconButtonEdite } from \"components/SysComponent/MaterialComponent\";\r\nimport Swal from \"sweetalert2\";\r\nimport { Link } from \"react-router-dom\";\r\nimport 'date-fns';\r\nimport CheckboxFormItem from '../form/CheckboxFormItem';\r\n// import { is } from \"@amcharts/amcharts4/core\";\r\n// const dateFormat = require('dateformat');\r\n\r\nlet ButtonMode = \"\";\r\nconst fnInitialDataCompany = {\r\n nEditID: 0,\r\n nOrder :\"1\",\r\n sCompanyName: \"\",\r\n sCompany: \"\",\r\n sDomain: \"\",\r\n sWorkingTime: \"\",\r\n EventTimeStart: null as any,\r\n EventTimeEnd: null as any,\r\n sTime: new Date(),\r\n eTime: new Date(),\r\n Status: \"Y\",\r\n NotificationStatus:\"Y\",\r\n StatusWorkTime: \"Y\",\r\n StatusCompanyAdmin: \"Y\",\r\n sInactiveRemark: \"\",\r\n sInactiveWorkTimeRemark: \"\",\r\n sInactiveCompanyAdminRemark: \"\",\r\n lstWorkTime: [],\r\n lstEventData: [],\r\n sCheckBoxHead: false,\r\n cCSR: false,\r\n cSubsidiary: \"\",\r\n sEventGroup: \"\",\r\n sEventType: \"\",\r\n nIDnWorkingTime: 0,\r\n};\r\n\r\n//#region table Head\r\nconst tableIcons: any = {\r\n Check: forwardRef((props: any, ref: any) => ),\r\n Clear: forwardRef((props: any, ref: any) => ),\r\n Filter: forwardRef((props: any, ref: any) => ),\r\n ResetSearch: forwardRef((props: any, ref: any) => ),\r\n Search: forwardRef((props: any, ref: any) => ),\r\n SortArrow: forwardRef((props: any, ref: any) => ),\r\n DetailPanel: forwardRef((props: any, ref: any) => ),\r\n};\r\n//#endregion \r\n\r\nconst sController = \"UserPermission\";\r\nconst sControllesCompany = \"Company\"\r\n\r\nconst CreateCompany = () => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const [lstDDLCompany, SetDDlCompany] = useState([] as any);\r\n const [lstDDLCompanyCSR, SetDDlCompanyCSR] = useState([] as any);\r\n const [lstOrder, SetlstOrder] = useState([] as any);\r\n const arrStatus = [{ label: \"Active\", value: \"Y\" }, { label: \"Inactive\", value: \"N\" }];\r\n const [isStatus_Inactive, setStatusInactive] = useState(\"Y\");\r\n const [isSubsidiary, setSubsidiary] = useState(false);\r\n const [isOverDay, setOverDay] = useState(false);\r\n const arrStatusWorkTime = [{ label: \"Active\", value: \"Y\" }, { label: \"Inactive\", value: \"N\" }];\r\n const [isStatusWorkTime_Inactive, setStatusWorkTimeInactive] = useState(\"Y\");\r\n const [lstEventGroup, SetEventGroup] = useState([] as any);\r\n const [lstEventGroupCSR, SetEventGroupCSR] = useState([] as any);\r\n const [lstWorkTime, setWorkTime] = useState([] as any);\r\n const [isnMaxID, setnMaxID] = useState(0);\r\n const [lstDDLEventType, SetDDLEventType] = useState([] as any);\r\n const [lstEventData, setEventData] = useState([] as any);\r\n const [arrEventTypeSelect, setEventTypeSelect] = useState([] as any);\r\n const [fnInitial_DataCompany, setInitialDataCompany] = useState(fnInitialDataCompany as any);\r\n const [isModeEdite, setModeEdite] = useState(false);\r\n const [isCSR, setStateCSR] = useState(false as any);\r\n const [isShoweTime, setisShoweTime] = useState(true);\r\n const [isEditWorkTimeID, setEditWorkTimeID] = useState(0);\r\n const validateCompany = yup.object().shape({\r\n sCompany: isSubsidiary === true ? yup.string().required(MsgValidate.PleaseSpecify + 'Head Company') : \"\",\r\n sCompanyName: yup.string().max(200, MsgValidateMaxLength(\"Company\", 200)).required(MsgValidate.PleaseSpecify + 'Company Name or CSR Area'),\r\n Status: yup.string().required(MsgValidate.PleaseSpecify + ' Confirm Status'),\r\n sInactiveRemark: isStatus_Inactive === \"N\" ? yup.string().required(MsgValidate.PleaseSpecify + ' Note set Inactive') : \"\",\r\n });\r\n\r\n const [SourceEventType, SetSouceEventType] = useState([] as any);\r\n const [nEditID, setEditID] = useState(0);\r\n const [isView, setView] = useState(false);\r\n const LoadData = () => {\r\n let params = new URLSearchParams(window.location.search)\r\n let ID = params.get('ID');\r\n let obj = {\r\n 'nEditID': +Decrypt(ID)\r\n };\r\n setEditID(+Decrypt(ID));\r\n AxiosPost(sControllesCompany + \"/LoadCreateCompanyData\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n if (response.nPermission === 0) {\r\n NoPermission();\r\n } else {\r\n SetlstOrder(response.lstOrder);\r\n \r\n setView(response.nPermission === 1);\r\n SetDDlCompany(new LINQ(response.lstDDLCompany).Select(s => ({ label: s.nCompanyName, value: s.nCompanyID })).ToArray());\r\n SetDDlCompanyCSR(new LINQ(response.lstDDLCompanyCSR).Where(w => w.cCSR == \"Y\").Select(s => ({ label: s.nCompanyName, value: s.nCompanyID })).ToArray());\r\n SetEventGroup(new LINQ(response.lstEventGroup).Select(s => ({ label: s.label, value: s.value })).ToArray());\r\n SetEventGroupCSR(new LINQ(response.lstEventGroup).Where(w => w.value === \"1\").Select(s => ({ label: s.label, value: s.value })).ToArray());\r\n let arrEventType = new LINQ(response.lstDDLEventType).Select(s => ({ label: s.sEventTypeName, value: s.nEventTypeID, nEventGroupID: s.nEventGroupID, nEventColor: s.nEventColor })).ToArray();\r\n SetDDLEventType([...arrEventType])\r\n if (response.isEdite) {\r\n if (response.CompanyData != null) {\r\n \r\n \r\n setModeEdite(response.isEdite);\r\n let data = response.CompanyData;\r\n setInitialDataCompany({\r\n ...fnInitial_DataCompany,\r\n sCompany: data.nHeadCompany,\r\n sCompanyName: data.sCompanyName,\r\n Status: data.sStatus,\r\n NotificationStatus: data.sNotificationStatus,\r\n sInactiveRemark: data.sNoteInActive,\r\n nOrder: data.nOrder+\"\",\r\n lstWorkTime: data.lstWorkTime,\r\n lstEventData: data.lstEventData,\r\n cCSR: data.cCSR == \"Y\" ? true : false,\r\n cSubsidiary: data.cSubsidiary == \"Y\" ? true : false,\r\n //สั่ง checkbox ติ๊ก เมื่อมี headcompany\r\n sCheckBoxHead: data.cSubsidiary == \"Y\" ? true : false,\r\n })\r\n let ValuesCSR = data.cCSR;\r\n ValuesCSR == \"Y\" ? setStateCSR(true) : setStateCSR(false);\r\n let Valuessubsidary = data.cSubsidiary;\r\n Valuessubsidary == \"Y\" ? setSubsidiary(true) : setSubsidiary(false);\r\n setEditID(data.nCompanyID);\r\n setStatusInactive(data.sStatus);\r\n setWorkTime(data.lstWorkTime);\r\n setEventData(data.lstEventData);\r\n\r\n }\r\n } else {\r\n setInitialDataCompany({\r\n ...fnInitial_DataCompany,\r\n nOrder: response.lstOrder.length + \"\"\r\n })\r\n }\r\n setnMaxID(response.nMaxID);\r\n // console.log(response.nMaxID)\r\n }\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n const onSaveData = (values, { setFieldValue, setFieldError }) => {\r\n if (ButtonMode == \"WT\") {\r\n // let IDMaxWorkTime = +isnMaxID;\r\n let lastID = new LINQ(lstWorkTime).ToList();\r\n // console.log(lastID)\r\n let nMaxID = lastID.Any() ? lastID.Max(m => m.nWorkingTime) + 1 : 1;\r\n //เข็ค Name ในตารางว่าห้ามซํ้า\r\n // ค่า ID WorkingTime \r\n const dEventTimeStart = values.EventTimeStart;\r\n const dEventTimeEnd = values.EventTimeEnd;\r\n\r\n let sStart = \"\", sEnd = \"\", setTime = \"\";\r\n if (dEventTimeStart != null && dEventTimeEnd != null) {\r\n let sStartHours = dEventTimeStart.getHours().toString()\r\n .padStart(2, \"0\");\r\n let sStartMinutes = dEventTimeStart.getMinutes().toString()\r\n .padStart(2, \"0\");\r\n let sEndtHours = dEventTimeEnd.getHours().toString()\r\n .padStart(2, \"0\");\r\n let sEndMinutes = dEventTimeEnd.getMinutes().toString()\r\n .padStart(2, \"0\");\r\n sStart = sStartHours + \":\" + sStartMinutes;\r\n sEnd = sEndtHours + \":\" + sEndMinutes;\r\n let start = sStartHours + \"\" + sStartMinutes;\r\n let end = sEndtHours + \"\" + sEndMinutes;\r\n let timeset = sStart + \" - \" + sEnd;\r\n let data = new LINQ(lstWorkTime).FirstOrDefault(w => w.nWorkingTime === +isEditWorkTimeID);\r\n let isCheckDup = false;\r\n\r\n if (lastID.Any(a => a.sWorkingTime.toLowerCase().trim() === values.sWorkingTime.toLowerCase().trim() && a.cDelWorkTime === \"N\" && a.nWorkingTime != +isEditWorkTimeID)) {\r\n isCheckDup = true;\r\n }\r\n\r\n if (isCheckDup) {\r\n SwAlert.Error(AlertTitle.Warning, 'Name Working Duplicate Data', () => { });\r\n }\r\n else {\r\n if ((+start) >= (+end) && isOverDay === false) {\r\n SwAlert.Warning(AlertTitle.Warning, AlertMsg.OverTime, () => { });\r\n }\r\n\r\n else if (lastID.Any(a => a.timeset === timeset && a.nWorkingTime != +isEditWorkTimeID && a.cDelWorkTime === \"N\")) {\r\n SwAlert.Warning(AlertTitle.Warning, 'Time Working Duplicate Data', () => { });\r\n }\r\n else {\r\n if (data != null) {\r\n data.sWorkingTime = values.sWorkingTime;\r\n data.sStartTime = sStart;\r\n data.sEndTime = sEnd;\r\n data.timeset = sStart + \" - \" + sEnd;\r\n data.cDelWorkTime = \"N\";\r\n data.sNoteInActive = values.sInactiveWorkTimeRemark;\r\n data.cActive = values.StatusWorkTime;\r\n data.isOverDay = values.isOverDay;\r\n setEditWorkTimeID(0);\r\n }\r\n else {\r\n\r\n lstWorkTime.push({\r\n nWorkingTime: nMaxID,\r\n sWorkingTime: values.sWorkingTime,\r\n sStartTime: sStart,\r\n isDelect: true,\r\n sEndTime: sEnd,\r\n timeset: sStart + \" - \" + sEnd,\r\n cDelWorkTime: \"N\",\r\n sNoteInActive: values.sInactiveWorkTimeRemark,\r\n cActive: values.StatusWorkTime,\r\n isOverDay: values.isOverDay,\r\n isNew: true,\r\n });\r\n }\r\n\r\n setWorkTime([...lstWorkTime]);\r\n resetFromSubmitData(setFieldValue, setFieldError, \"sWorkingTime\", '');\r\n resetFromSubmitData(setFieldValue, setFieldError, \"isOverDay\", false);\r\n setOverDay(false);\r\n resetFromSubmitData(setFieldValue, setFieldError, \"EventTimeStart\", '');\r\n resetFromSubmitData(setFieldValue, setFieldError, \"EventTimeEnd\", '');\r\n resetFromSubmitData(setFieldValue, setFieldError, \"sEventType\", '');\r\n resetFromSubmitData(setFieldValue, setFieldError, \"sEventGroup\", '');\r\n setStatusWorkTimeInactive(\"Y\");\r\n resetFromSubmitData(setFieldValue, setFieldError, \"StatusWorkTime\", \"Y\");\r\n resetFromSubmitData(setFieldValue, setFieldError, \"sInactiveWorkTimeRemark\", \"\");\r\n }\r\n }\r\n ButtonMode = \"\";\r\n }\r\n }\r\n else if (ButtonMode == \"EVEN_TYPE\") {\r\n\r\n //ถ้าประกาศค่าไว้ใน Form\r\n let lastID = new LINQ(lstEventData).ToList();\r\n arrEventTypeSelect.forEach(e => {\r\n let nMaxID = lastID.Any() ? lastID.Max(m => m.nEventTypeID) + 1 : 1;\r\n\r\n let nEventGroupName = new LINQ(lstEventGroup).FirstOrDefault(w => w.value === values.sEventGroup);\r\n let sEventTypeName = new LINQ(lstDDLEventType).FirstOrDefault(w => w.value === +e);\r\n\r\n //เข็ค Name และ Group ในตารางว่าห้ามซํ้า \r\n if (lastID.Any(a => a.sEventTypeName.toUpperCase() === sEventTypeName.label.toUpperCase() && a.nEventGroupID === (+values.sEventGroup))) {\r\n SwAlert.Warning(AlertTitle.Warning, AlertMsg.Duplicate, () => { });\r\n }\r\n else {\r\n //push data to array\r\n lstEventData.push({\r\n nEventTypeID: +e,\r\n nComEventID: +values.nComEventID,\r\n nEventGroupID: +values.sEventGroup,\r\n sEventGroupName: nEventGroupName != null ? nEventGroupName.label : \"-\",\r\n sEventTypeName: sEventTypeName != null ? sEventTypeName.label : \"-\",\r\n nEventColor: sEventTypeName != null ? sEventTypeName.nEventColor : \"-\",\r\n isDelete:true\r\n })\r\n }\r\n\r\n });\r\n\r\n setEventData([...lstEventData]);\r\n\r\n resetFromSubmitData(setFieldValue, setFieldError, \"sWorkingTime\", '');\r\n resetFromSubmitData(setFieldValue, setFieldError, \"EventTimeStart\", '');\r\n resetFromSubmitData(setFieldValue, setFieldError, \"EventTimeEnd\", '');\r\n resetFromSubmitData(setFieldValue, setFieldError, \"sEventType\", '');\r\n resetFromSubmitData(setFieldValue, setFieldError, \"sEventGroup\", '');\r\n ButtonMode = \"\";\r\n //สั่งรีเซ็ต FormDropdown\r\n SetSouceEventType([]);\r\n }\r\n else {\r\n\r\n //ผ่าน Validate ทั้งหมด\r\n ButtonMode = \"\";\r\n let ispass = true;\r\n if (isCSR === false) {\r\n if (lstWorkTime == null || lstWorkTime.filter(w => w.cDelWorkTime === \"N\").length == 0) {\r\n SwAlert.Warning(AlertTitle.Warning, 'Please specify Working Time at least 1 item.', () => { });\r\n ispass = false;\r\n }\r\n else if (lstEventData.length == 0 || lstEventData == null) {\r\n SwAlert.Warning(AlertTitle.Warning, 'Please specify Event Type at least 1 item.', () => { });\r\n ispass = false;\r\n }\r\n }\r\n\r\n if (ispass) {\r\n let obj = {\r\n nCompanyID: nEditID,\r\n sCompanyName: values.sCompanyName,\r\n sNoteInActive: values.sInactiveRemark,\r\n cCSR: values.cCSR == true ? \"Y\" : \"N\",\r\n cSubsidiary: values.sCheckBoxHead == true ? \"Y\" : \"N\",\r\n nHeadCompany: +values.sCompany,\r\n cActive: values.Status,\r\n sNotificationStatus : values.NotificationStatus,\r\n lstWorkTime: lstWorkTime,\r\n lstEventData: lstEventData,\r\n nOrder: Number(values.nOrder),\r\n }\r\n DialogConfirm(() => {\r\n AxiosPost(sControllesCompany + \"/sendToDB\", obj, (res) => {\r\n ResultAPI(false, res, null, () => {\r\n BackToComponent(\"BackToCompany\");\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n }\r\n }\r\n };\r\n\r\n //Validate FormData in mode Button\r\n const _validateForm = () => {\r\n\r\n if (ButtonMode === \"\") {\r\n return validateCompany\r\n } else if (ButtonMode === \"EVEN_TYPE\") {\r\n return validateEventType;\r\n } else if (ButtonMode === \"WT\") {\r\n return validateWorkTime;\r\n }\r\n }\r\n\r\n //#region ValidateData\r\n const validateWorkTime = yup.object().shape({\r\n sWorkingTime: yup.string().max(200, MsgValidateMaxLength(\"Working Time\", 200)).required(MsgValidate.PleaseSpecify + 'Working Time'),\r\n EventTimeStart: isShoweTime ? yup.date().typeError(MsgValidate.PleaseSpecify + ' Start Time').required(MsgValidate.PleaseSpecify + ' Start Time') : \"\",\r\n EventTimeEnd: isShoweTime ? yup.date().typeError(MsgValidate.PleaseSpecify + ' End Time ').required(MsgValidate.PleaseSpecify + ' End Time') : \"\",\r\n StatusWorkTime: yup.string().required(MsgValidate.PleaseSpecify + ' Confirm Status'),\r\n sInactiveWorkTimeRemark: isStatusWorkTime_Inactive === \"N\" ? yup.string().required(MsgValidate.PleaseSpecify + ' Note set Inactive') : \"\",\r\n });\r\n const onClearFromWorkTime = (formProps) => {\r\n resetFromData(formProps, \"sWorkingTime\", \"\");\r\n resetFromData(formProps, \"EventTimeStart\", \"\");\r\n resetFromData(formProps, \"EventTimeEnd\", \"\");\r\n resetFromData(formProps, \"isOverDay\", false);\r\n setStatusWorkTimeInactive(\"Y\");\r\n resetFromData(formProps, \"StatusWorkTime\", \"Y\");\r\n resetFromData(formProps, \"sInactiveWorkTimeRemark\", \"\");\r\n //set id worktime = 0\r\n setEditWorkTimeID(0);\r\n };\r\n\r\n const EventTimeStartControl = (formProps) => {\r\n return (\r\n\r\n \r\n )\r\n }\r\n const EventTimeEndControl = (fromProps) => {\r\n return (\r\n \r\n )\r\n }\r\n //ปุ่ม editWorkTime\r\n const editWorkTime = (lst, formProps) => {\r\n // formProps.preventDefault();\r\n let nID = lst.nWorkingTime;\r\n // console.log(formProps)\r\n\r\n var q = new LINQ(lstWorkTime).Where(w => w.nWorkingTime === nID).FirstOrDefault();\r\n if (q != null) {\r\n setEditWorkTimeID(nID);\r\n formProps.values.nIDnWorkingTime = q.nWorkingTime;\r\n formProps.values.sWorkingTime = q.sWorkingTime;\r\n formProps.values.EventTimeStart = q.sStartTime != null ? new Date(\"2020/01/11 \" + q.sStartTime) : \"\";\r\n formProps.values.EventTimeEnd = q.sEndTime != null ? new Date(\"2020/01/11 \" + q.sEndTime) : \"\";\r\n formProps.values.StatusWorkTime = q.cActive;\r\n setStatusWorkTimeInactive(q.cActive);\r\n formProps.values.sInactiveWorkTimeRemark = q.sNoteInActive;\r\n formProps.values.isOverDay = q.isOverDay;\r\n setOverDay(q.isOverDay);\r\n setInitialDataCompany({ ...fnInitial_DataCompany });\r\n }\r\n }\r\n const AddWorkTime = useCallback((props) => {\r\n const { formProps } = props;\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n
Working Time
\r\n
\r\n\r\n
\r\n
\r\n {!isView && \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n e === true ? setOverDay(true) : setOverDay(false)\r\n } >\r\n \r\n \r\n \r\n \r\n\r\n {\r\n\r\n setStatusWorkTimeInactive(e);\r\n }} defaultvalue />\r\n \r\n {\r\n isStatusWorkTime_Inactive === \"N\" ?\r\n \r\n
\r\n \r\n
\r\n
\r\n : \r\n }\r\n
\r\n \r\n { ButtonMode = \"WT\"; formProps.submitForm(formProps) }}>\r\n Confirm Add Working Time Data\r\n \r\n { onClearFromWorkTime(formProps) }} />\r\n \r\n
}\r\n \r\n
\r\n
\r\n\r\n
\r\n )\r\n }, [isStatusWorkTime_Inactive, lstWorkTime, isEditWorkTimeID]);\r\n\r\n\r\n const WorkTimeTable = useCallback((props) => {\r\n const { formProps } = props;\r\n const deleteWorkTime = (id) => {\r\n DialogConfirmDelete(() => {\r\n var q = new LINQ(lstWorkTime).Where(w => w.nWorkingTime === id).FirstOrDefault();\r\n if (q != null) {\r\n if (q.isNew) {\r\n setWorkTime(new LINQ(lstWorkTime).Where(w => w.nWorkingTime !== id).ToArray());\r\n } else {\r\n q.cDelWorkTime = \"Y\";\r\n setWorkTime([...lstWorkTime]);\r\n }\r\n }\r\n Swal.close();\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Name\r\n Start Time - End Time\r\n {!isView && }\r\n \r\n \r\n \r\n {lstWorkTime.filter(w => w.cDelWorkTime !== \"Y\").length > 0 ? lstWorkTime.filter(w => w.cDelWorkTime !== \"Y\").map((row, idex) => {\r\n return (\r\n \r\n {row.sWorkingTime}\r\n {row.sStartTime + \" - \" + row.sEndTime}\r\n {!isView && \r\n editWorkTime(row, formProps)} >\r\n {row.isDelect === true && deleteWorkTime(row.nWorkingTime)} />}\r\n {/* editItem(row.nWorkingTime)} /> */}\r\n }\r\n \r\n )\r\n }) : }\r\n \r\n\r\n \r\n \r\n \r\n )\r\n }, [lstWorkTime, isCSR, isView]);\r\n\r\n const validateEventType = yup.object().shape({\r\n sEventGroup: yup.string().required(MsgValidate.PleaseSpecify + 'Event Group'),\r\n sEventType: yup.string().required(MsgValidate.PleaseSpecify + 'Event Type'),\r\n });\r\n\r\n const onClearFromEventType = (formProps) => {\r\n resetFromData(formProps, \"sEventGroup\", \"\");\r\n resetFromData(formProps, \"sEventType\", \"\");\r\n if (lstEventData.length < 1) {\r\n }\r\n\r\n };\r\n const AddEventData = useCallback((props) => {\r\n\r\n const { formProps } = props;\r\n //กรณ๊ที่ EventGroup มีการเปลี่ยนแปลงค่า\r\n const EventGroupChang = (form, value) => {\r\n resetFromData(formProps, \"sWorkingTime\", \"\");\r\n resetFromData(formProps, \"EventTimeStart\", null);\r\n resetFromData(formProps, \"EventTimeEnd\", null);\r\n //รับค่า Query ที่เก็บไว้ มา Where หา ค่า Group\r\n let qEventType = new LINQ(lstDDLEventType).Where(w => (w.nEventGroupID + \"\") === value).OrderBy(o => o.nEventColor).ThenBy(t => t.sEventTypeName).ToArray();\r\n //set ค่าใน Dropdown EventType\r\n SetSouceEventType([...qEventType]);\r\n\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
Event Type
\r\n
\r\n
\r\n
\r\n {!isView && \r\n \r\n \r\n \r\n \r\n \r\n\r\n {\r\n setEventTypeSelect(new LINQ(data).Select(s => s.value).ToArray());\r\n }} />\r\n \r\n \r\n \r\n {\r\n ButtonMode = \"EVEN_TYPE\";\r\n formProps.submitForm(formProps);\r\n }}>\r\n Confirm Add Event Type Data\r\n \r\n { onClearFromEventType(formProps) }} />\r\n \r\n }\r\n \r\n
\r\n
\r\n\r\n
\r\n )\r\n // ** จำเป็นต้องส่งค่ามา\r\n }, [lstEventData, SourceEventType, lstDDLEventType, isCSR, isView]);\r\n\r\n const EvenTypeTable = useCallback(() => {\r\n const deleteItem = (id) => {\r\n DialogConfirmDelete(() => {\r\n setEventData(new LINQ(lstEventData).Where(w => w.nEventTypeID != id).ToArray());\r\n Swal.close();\r\n });\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Event Type\r\n Event Group \r\n {!isView && }\r\n \r\n \r\n \r\n {lstEventData.length > 0 ? lstEventData.map((row, idex) => {\r\n return (\r\n \r\n \r\n {row.sEventTypeName}\r\n {row.sEventGroupName}\r\n {(!isView) && \r\n { row.isDelete && deleteItem(row.nEventTypeID)} />}\r\n }\r\n \r\n )\r\n }) : }\r\n \r\n\r\n \r\n \r\n \r\n )\r\n }, [lstEventData]);\r\n //# region Main Component\r\n return (\r\n \r\n \r\n \r\n {(formProps) => {\r\n return (\r\n
\r\n {\r\n scrollToElementValidate(ButtonMode === \"\" ? \"formCompanyInfo\" : \"\");\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isView && \r\n e === true ? setSubsidiary(true) : setSubsidiary(false)\r\n } />}\r\n {isView && \r\n e === true ? setSubsidiary(true) : setSubsidiary(false)\r\n } disabled/>}\r\n\r\n \r\n\r\n \r\n {!isView &&\r\n \r\n e === true ? setStateCSR(true) : setStateCSR(false)\r\n\r\n } />}\r\n {isView &&\r\n \r\n e === true ? setStateCSR(true) : setStateCSR(false)\r\n\r\n } disabled />}\r\n \r\n \r\n {\r\n isSubsidiary === true ?\r\n \r\n
\r\n \r\n
\r\n
\r\n : \r\n }\r\n \r\n \r\n {\r\n setStatusInactive(e);\r\n }} disable={isView} />\r\n \r\n \r\n {\r\n isStatus_Inactive === \"N\" ?\r\n \r\n
\r\n \r\n
\r\n
\r\n : \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {isCSR === false ?\r\n \r\n \r\n \r\n \r\n \r\n : \r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isView && { ButtonMode = \"\"; formProps.submitForm() }} />}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n }}\r\n
\r\n
\r\n )\r\n //# endregion Main Component\r\n};\r\n\r\n\r\nexport default CreateCompany;\r\n","import React, { Fragment, useEffect, useState } from 'react'\r\nimport { Encrypt, AxiosPost, ResultAPI, FnBlock_UI, DialogConfirmDelete } from '../SysComponent/SystemComponent';\r\nimport {\r\n Paper, Grid, TableContainer, TableSortLabel, IconButton, Typography, TablePagination,\r\n DialogContent, DialogActions\r\n} from '@material-ui/core';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport Button from '@material-ui/core/Button';\r\nimport SelectNoForm from '../form/SelectNoFormItem';\r\nimport {\r\n useStyles, MuiTableTableToolbar, MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order,\r\n PerPageOptions, StyledTableBody, stableSort, getComparator, MuiRowNoData, HeadCell\r\n} from '../form/Table/CustomTable';\r\nconst dateFormat = require('dateformat');\r\nexport interface SubEventTypeProps {\r\n open: boolean;\r\n onClose: (value: string) => void;\r\n rows: any[];\r\n nPermission: number;\r\n}\r\n\r\nexport const DialogSubArea = (props: SubEventTypeProps) => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('dUpdateDate');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\r\n const { onClose, open, rows,nPermission} = props;\r\n const [lstSubOrder, SetlstSubOrder] = useState([] as any);\r\n const [lstData, SetlstData] = useState([] as any);\r\n const [nID, SetnID] = useState(0);\r\n \r\n const handleClose = () => {\r\n onClose(\"\");\r\n };\r\n useEffect(() => {\r\n LoadData();\r\n //setPage(0);\r\n //setRowsPerPage(10);\r\n }, [rows]);\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const LoadData = () => {\r\n console.log(\"row\",rows)\r\n let lst = [] as any;\r\n for (let i = 0; i < rows.length; i++) {\r\n lst.push({ label: (i + 1) + \"\", value: (i + 1) + \"\" });\r\n SetnID(rows[i].nHeadreaID)\r\n }\r\n SetlstData(rows)\r\n SetlstSubOrder(lst);\r\n setPage(0);\r\n setRowsPerPage(10);\r\n }\r\n\r\n const ChangeOrder = (from, to) => {\r\n console.log(\"from\", from)\r\n console.log(\"to\", to)\r\n console.log(\"lstData\", lstData)\r\n if (from != to) {\r\n let qbj = {\r\n sFrom: from,\r\n sTo: to,\r\n lstSubArea: lstData,\r\n nAreaID: nID,\r\n };\r\n AxiosPost(\"Area\" + \"/ChangeSubOrderFromModal\", qbj, (response) => {\r\n ResultAPI(true, response, null, () => {\r\n SetlstData(response.lstSubArea)\r\n })\r\n }, () => { }, UnBlockUI, UnBlockUI)\r\n }\r\n }\r\n\r\n //#region set Header\r\n const headCells: HeadCell[] = [\r\n //{ id: 'No', numeric: true, disablePadding: true, label: 'No.', width: 5, isSort: false },\r\n { id: 'nOrder', numeric: true, disablePadding: true, label: 'Order', width: 15, isSort: true },\r\n { id: 'sAreaName', numeric: false, disablePadding: true, label: 'Sub Area', width: 30, isSort: true },\r\n { id: 'sWorkingTime', numeric: false, disablePadding: true, label: 'Working Time', width: 30, isSort: true },\r\n { id: 'sApprove', numeric: false, disablePadding: true, label: 'Require Approval', width: 10, isSort: true },\r\n { id: 'sStatus', numeric: false, disablePadding: true, label: 'Status', width: 10, isSort: true },\r\n { id: 'dUpdate', numeric: true, disablePadding: false, label: 'Last Update', width: 25, isSort: true },\r\n ];\r\n\r\n const Header = () => {\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n //#region set Body\r\n const BodyData = () => {\r\n return (\r\n \r\n\r\n {lstData != undefined && lstData.length > 0 ? stableSort(lstData, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((row, index) => {\r\n return (\r\n \r\n {/*{(rowsPerPage * (page)) + (index + 1)}*/}\r\n \r\n x.value === row.nOrder + \"\")}\r\n isClearable={false}\r\n onChange={values => {\r\n ChangeOrder(row.nOrder + \"\", values.value)\r\n }}\r\n disable={nPermission !==2}\r\n />\r\n \r\n {row.sAreaName}\r\n {row.sWorkingTime}\r\n {row.sApprove === \"Require Approval\" ? \"Yes\" : \"No\"}\r\n {row.sStatus}\r\n {dateFormat(new Date(row.dUpdate), \"dd/mm/yyyy\")}\r\n \r\n );\r\n })\r\n :\r\n \r\n }\r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n //#region set Pagination\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n lstData.length > 0 ?\r\n \r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n return (\r\n \r\n Sub Area\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}","import React, { Fragment, useEffect } from 'react'\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { Link } from 'react-router-dom';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport { Encrypt, AxiosPost, ResultAPI, FnBlock_UI, DialogConfirmDelete, NoPermission, ResultDeleteAPI, AxiosPostExportFile } from 'components/SysComponent/SystemComponent';\r\nimport {\r\n MuiButtonSearch, MuiButtonEdite, MuiButtonAdd, MuiButtonDelete, MuiIconButtonItem, MuiIconCheckBoxDelete, MuiButtonExport, MuiButtonView\r\n} from '../SysComponent/MaterialComponent'\r\nimport {\r\n useStyles, MuiTableTableToolbar, MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order,\r\n PerPageOptions, StyledTableBody, stableSort, getComparator, MuiRowNoData, HeadCell, defaultPage\r\n} from '../form/Table/CustomTable';\r\nimport {\r\n Paper, Grid, TableContainer, TableSortLabel, Typography, TablePagination\r\n} from '@material-ui/core';\r\nimport SelectNoForm from '../form/SelectNoFormItem';\r\nimport { TextFieldInputFreeText } from '../form/InputNoForm';\r\nimport { DialogSubArea } from '../DialogComponents/DialogSubArea';\r\nimport { List as LINQ } from 'linqts';\r\nconst dateFormat = require('dateformat');\r\nconst sController = \"Area\";\r\nconst AreaStructure = () => {\r\n\r\n //#region useState\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('nGroupOrder');\r\n const [selected, setSelected] = React.useState([] as number[]);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(defaultPage);\r\n const isSelected = (ID: number) => selected.indexOf(ID) !== -1;\r\n const [rows, setRowData] = React.useState([] as any[]);\r\n const [lstEventGroup, setEventGroup] = React.useState([] as any[]);\r\n const [lstCompany, setCompany] = React.useState([] as any[]);\r\n\r\n const [sTxtSearch, setsTxtSearch] = React.useState(\"\");\r\n const [EventGroupID, setEventGroupID] = React.useState(\"\");\r\n const [CompanyID, setCompanyID] = React.useState(\"\");\r\n\r\n const [lstSubArea, setlstSubAreaType] = React.useState([] as any[]);\r\n const [nPermission, setPermission] = React.useState(0);\r\n const [lstOrder, setlstOrder] = React.useState([] as any[]);\r\n const [allowEditOrder, setallowEditOrder] = React.useState(false);\r\n //#endregion\r\n //rowsPerPage*(page-1)\r\n //#region on Load\r\n const LoadData = () => {\r\n let qbj = {\r\n SearchText: sTxtSearch,\r\n SearchEventGroupID: (+EventGroupID) > 0 ? +EventGroupID : null,\r\n SearchCompanyID: (+CompanyID) > 0 ? +CompanyID : null,\r\n };\r\n\r\n setallowEditOrder((+EventGroupID) > 0 && (+CompanyID) > 0 ? true : false)\r\n \r\n AxiosPost(sController + \"/LoadAreaList\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n if (response.nPermission === 0) {\r\n NoPermission();\r\n } else {\r\n setPermission(response.nPermission);\r\n setRowData(response.lstData);\r\n setEventGroup(response.lstEventGroup);\r\n setCompany(response.lstCompyne);\r\n setPage(0);\r\n setRowsPerPage(defaultPage);\r\n setlstOrder(response.lstOrder);\r\n }\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n\r\n const ExportExcel = async () => {\r\n let obj = {\r\n SearchText: sTxtSearch,\r\n SearchEventGroupID: (+EventGroupID) > 0 ? +EventGroupID : null,\r\n SearchCompanyID: (+CompanyID) > 0 ? +CompanyID : null,\r\n lstAreaID:new LINQ(rows).Select(s=> s.nAreaID).ToArray()\r\n };\r\n // let fileName = \"3.Area Structure_Export\" + dateFormat(new Date(), \"ddMMyyyyHHmm\") + \".xlsx\";\r\n let fileName = \"3.Area Structure_Export\" + \".xlsx\";\r\n await AxiosPostExportFile(sController + \"/ExportExcel\", obj, fileName, () => { }, BlockUI, UnBlockUI);\r\n }\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n let qbj = {\r\n SearchText: sTxtSearch,\r\n SearchEventGroupID: (+EventGroupID) > 0 ? +EventGroupID : null,\r\n SearchCompanyID: (+CompanyID) > 0 ? +CompanyID : null,\r\n };\r\n AxiosPost(sController + \"/GetCompanyCSR\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setCompany(response);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }, [EventGroupID]);\r\n //#endregion\r\n\r\n //#region event\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const handleSelectAllClick = (event: React.ChangeEvent) => {\r\n if (event.target.checked) {\r\n const newSelecteds = rows.map((n) => n.nAreaID);\r\n setSelected(newSelecteds);\r\n return;\r\n }\r\n setSelected([]);\r\n };\r\n\r\n const handleClick = (event: React.MouseEvent, ID: any) => {\r\n const selectedIndex = selected.indexOf(ID);\r\n let newSelected: number[] = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, ID);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n setSelected(newSelected);\r\n };\r\n const onDelete = () => {\r\n DialogConfirmDelete(() => {\r\n let qbj = { lstAreaID: selected };\r\n AxiosPost(sController + \"/DeleteArea\", qbj, (response) => {\r\n ResultDeleteAPI(false, response, null, () => {\r\n LoadData();\r\n setSelected([]);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n };\r\n\r\n const [open, setOpen] = React.useState({ EventType: false, Remark: false });\r\n const handleClose = (value: string) => {\r\n setOpen({ ...open, EventType: false });\r\n };\r\n\r\n const popupSubEventType = (SubType) => {\r\n setOpen({ ...open, EventType: true });\r\n setlstSubAreaType([...SubType]);\r\n };\r\n //#endregion\r\n\r\n const ChangeOrder = (from, to,nID) => {\r\n if (from != to) {\r\n let qbj = {\r\n sFrom: from,\r\n sTo: to,\r\n sTableName: \"area\",\r\n nID: nID,\r\n nSubID: EventGroupID,\r\n };\r\n AxiosPost(\"Company\" + \"/SaveChangeOrder\", qbj, (response) => {\r\n ResultAPI(true, response, null, () => {\r\n LoadData();\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n }\r\n\r\n //#region set Header\r\n const headCells: HeadCell[] = [\r\n { id: 'No', numeric: true, disablePadding: true, label: 'No.', width: 5, isSort: false },\r\n { id: 'nOrder', numeric: true, disablePadding: true, label: 'Order', width: 15, isSort: true },\r\n { id: 'sEventGroupName', numeric: false, disablePadding: false, label: 'Event Group', width: 12, isSort: true },\r\n { id: 'nCompynyID', numeric: false, disablePadding: true, label: 'Company', width: 10, isSort: true },\r\n { id: 'sAreaName', numeric: false, disablePadding: true, label: 'Area', width: 35, isSort: true },\r\n { id: 'sEventGroup', numeric: true, disablePadding: false, label: 'Sub Area', width: 10, isSort: false },\r\n { id: 'sUpdateBy', numeric: true, disablePadding: false, label: 'Updated By', width: 25, isSort: true },\r\n { id: 'dUpdate', numeric: true, disablePadding: false, label: 'Last Update', width: 12, isSort: true },\r\n\r\n ];\r\n\r\n const Header = () => {\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n {nPermission === 2 && \r\n 0 && selected.length < rows.length}\r\n checked={rows.length > 0 && selected.length === rows.length}\r\n onChange={handleSelectAllClick}\r\n />\r\n }\r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n \r\n {nPermission === 2 && \r\n \r\n }\r\n \r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n //#region set Body\r\n const BodyData = () => {\r\n return (\r\n \r\n\r\n {rows.length > 0 ? stableSort(rows, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((row, index) => {\r\n const isItemSelected = isSelected(+row.nAreaID);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n\r\n return (\r\n \r\n {nPermission === 2 && \r\n handleClick(event, row.nAreaID)}\r\n inputProps={{ 'aria-labelledby': labelId }}\r\n />\r\n }\r\n {(rowsPerPage * (page)) + (index + 1)}\r\n To change order, please filter Event Group and Company.} placement=\"bottom\" arrow>\r\n \r\n \r\n x.value === row.nOrder + \"\")}\r\n isClearable={false}\r\n disable={!allowEditOrder || nPermission !== 2 }\r\n onChange={values => {\r\n ChangeOrder(row.nOrder + \"\", values.value, row.nAreaID)\r\n }}\r\n />\r\n \r\n \r\n {row.sEventGroupName}\r\n {row.sCompanyName}\r\n {row.sAreaName}\r\n {(row.lstSubArea as any).length > 0 && { popupSubEventType(row.lstSubArea) }} />}\r\n {row.sUpdateBy}\r\n {dateFormat(new Date(row.dUpdate), \"dd/mm/yyyy\")}\r\n \r\n {nPermission === 2 && \r\n \r\n }\r\n\r\n {nPermission === 1 && \r\n \r\n }\r\n\r\n \r\n \r\n );\r\n })\r\n :\r\n \r\n }\r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n //#region set Pagination\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n rows.length > 0 ?\r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n )}\r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n Selected ({selected.length}) Row\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n\r\n //#region Fiter\r\n\r\n const Fiter = () => {\r\n\r\n return (\r\n \r\n \r\n \r\n x.value === EventGroupID)}\r\n isClearable={true}\r\n onChange={values => { setEventGroupID(values != null ? values.value : null) }}\r\n />\r\n \r\n \r\n x.value === CompanyID)}\r\n isClearable={true}\r\n onChange={values => { setCompanyID(values != null ? values.value : null) }}\r\n />\r\n \r\n \r\n\r\n { setsTxtSearch(val) }} />\r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n
\r\n {rows.length > 0 ?
\r\n { ExportExcel() }} />\r\n
: }\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n )\r\n };\r\n //#endregion\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\nexport default AreaStructure;","\r\nimport React, { Fragment, useEffect, useState, useCallback, useMemo } from 'react'\r\nimport { Formik, Form } from \"formik\";\r\nimport * as yup from 'yup';\r\nimport { Grid, Paper, TableContainer, Typography, TablePagination, Checkbox } from '@material-ui/core';\r\nimport {\r\n FnBlock_UI, AxiosPost, ResultAPI, AlertMsg, MsgValidate, NoPermission,\r\n MsgValidateMaxLength, scrollToElementValidate, BackToComponent,\r\n Effect, SwAlert, AlertTitle, resetFromData, DialogConfirmDelete, resetFromSubmitData, DialogConfirm, Decrypt\r\n} from '../SysComponent/SystemComponent';\r\nimport RadioFormItem from '../form/RadioFormItem';\r\nimport SelectFormItem from '../form/SelectFormItem';\r\nimport InputFormItem from '../form/InputFormItem';\r\nimport SelectNoForm from '../form/SelectNoFormItem';\r\nimport {\r\n MuiButtonSave, MuiButtonCancel, MuiButtonAdd, MuiButtonClear, MuiIconButtonDelete,\r\n EventColorCompronent, MuiButtonConfirm, MuiIconButtonEdite\r\n} from '../SysComponent/MaterialComponent';\r\nimport { MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, PerPageOptions, StyledTableBody, MuiRowNoData } from '../form/Table/CustomTable';\r\nimport { List as LINQ } from 'linqts';\r\nimport Swal, { SweetAlertIcon } from \"sweetalert2\";\r\nimport { Link } from 'react-router-dom';\r\nimport CheckboxFormItem from '../form/CheckboxFormItem';\r\nconst sController = \"Area\";\r\nconst Create_AreaStructure = () => {\r\n\r\n //#region useState\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const arrStatus = [{ label: \"Active\", value: \"Y\" }, { label: \"Inactive\", value: \"N\" }];\r\n const [lstEventGroup, setlstEventGroup] = useState([] as any[]);\r\n const [lstOrder, SetlstOrder] = useState([] as any);\r\n const [lstSubOrder, SetlstSubOrder] = useState([] as any);\r\n const [lstCompany, setlstCompany] = useState([] as any[]);\r\n const [Status_Inactive, setStatus_Inactive] = useState({ Hear: \"Y\", Sub: \"Y\", isAddSub: false, isEdite: false, isEditeSub: false });\r\n const [lstWorkingTime, setWorkingTime] = useState([] as any[]);\r\n const [lstEventType, setEventType] = useState([] as any[]);\r\n const [lstSubAreaData, setlstSubAreaData] = useState([] as any[]);\r\n const [EventGroupSelect, setEventGroupSelect] = useState(\"\");\r\n const [isView, setView] = useState(false);\r\n\r\n const [objDataItem, setobjDataItem] = useState({ WorkingTimeSelect: [] as any[], EventTypeSelect: [] as any[], SubWorkingTimeSelect: [] as any[] });\r\n const _InitialDataArea_IN = {\r\n nAreaID: null,\r\n nEventGroupID: \"\",\r\n nCompanyID: \"\",\r\n nAreaHeadID: \"\",\r\n sAreaName: \"\",\r\n cRequireApprove: false,\r\n cActive: \"Y\",\r\n sNoteInActive: \"\",\r\n NotificationStatus: \"Y\",\r\n subAreaID: null,\r\n subAreaName: \"\",\r\n subcRequireApprove: false,\r\n subcActive: \"Y\",\r\n subsNoteInActive: \"\",\r\n nOrder: \"1\",\r\n nSubOrder: \"1\",\r\n };\r\n //#endregion\r\n\r\n //#region validate from and Evant\r\n const [_InitialDataArea, setInitialArea] = useState(_InitialDataArea_IN as any);\r\n let ButtonMode = \"\";\r\n const _validateForm = () => {\r\n if (ButtonMode === \"\") {\r\n return validateArea\r\n } else {\r\n return validateAreaSub;\r\n }\r\n }\r\n const validateArea = yup.object().shape({\r\n nEventGroupID: yup.string().required(MsgValidate.PleaseSpecify + 'Event Group'),\r\n nCompanyID: yup.string().required(MsgValidate.PleaseSpecify + 'Company'),\r\n sAreaName: yup.string().max(200, MsgValidateMaxLength(\"Area Name\", 200)).required(MsgValidate.PleaseSpecify + 'Area Name'),\r\n cActive: yup.string().required(MsgValidate.PleaseSpecify + 'Status'),\r\n sNoteInActive: Status_Inactive.Hear === \"N\" ? yup.string().max(500, MsgValidateMaxLength(\" Note set Inactive\", 500)).required(MsgValidate.PleaseSpecify + ' Note set Inactive') : \"\",\r\n\r\n });\r\n const validateAreaSub = yup.object().shape({\r\n subAreaName: yup.string().max(200, MsgValidateMaxLength(\"Area Name\", 200)).required(MsgValidate.PleaseSpecify + 'Area Name'),\r\n subcActive: yup.string().required(MsgValidate.PleaseSpecify + 'Status'),\r\n subsNoteInActive: Status_Inactive.Sub === \"N\" ? yup.string().max(500, MsgValidateMaxLength(\" Note set Inactive\", 500)).required(MsgValidate.PleaseSpecify + ' Note set Inactive') : \"\",\r\n });\r\n const pushSubOrder = () => {\r\n console.log(\"lstSubOrder\", lstSubOrder)\r\n lstSubOrder.push({ label: (lstSubOrder.length + 1) + \"\", value: (lstSubOrder.length + 1) + \"\" });\r\n SetlstSubOrder(lstSubOrder);\r\n };\r\n\r\n const onSaveData = (values, { setFieldValue, setFieldError }) => {\r\n if (ButtonMode === \"SUB\") {\r\n let latSub = new LINQ(lstSubAreaData).ToList();\r\n let isCheckDup = false;\r\n if (Status_Inactive.isEditeSub) {\r\n if (latSub.Any(a => a.nAreaID != values.subAreaID && a.sAreaName.toLowerCase().trim() === values.subAreaName.toLowerCase().trim() && a.cDel === \"N\")) {\r\n isCheckDup = true;\r\n }\r\n } else {\r\n if (latSub.Any(a => a.sAreaName.toLowerCase().trim() === values.subAreaName.toLowerCase().trim() && a.cDel === \"N\")) {\r\n isCheckDup = true;\r\n }\r\n }\r\n if (isCheckDup) {\r\n SwAlert.Error(AlertTitle.Warning, AlertMsg.Duplicate, () => { });\r\n } else {\r\n let nMaxID = latSub.Any() ? latSub.Max(m => m.nAreaID) + 1 : 1;\r\n if (+EventGroupSelect === 1) {\r\n if (Status_Inactive.isEditeSub) {\r\n var up = new LINQ(lstSubAreaData).FirstOrDefault(w => w.nAreaID == values.subAreaID);\r\n if (up != null) {\r\n \r\n up.sAreaName = values.subAreaName;\r\n up.cRequireApprove = values.subcRequireApprove;\r\n up.cActive = values.subcActive;\r\n up.sNoteInActive = values.subsNoteInActive;\r\n up.lstWorkingTimeID = objDataItem.SubWorkingTimeSelect;\r\n }\r\n } else {\r\n \r\n \r\n lstSubAreaData.push({\r\n nAreaID: nMaxID,\r\n nEventGroupID: 0,\r\n nCompanyID: 0,\r\n nAreaHeadID: 0,\r\n sAreaName: values.subAreaName,\r\n cRequireApprove: values.subcRequireApprove,\r\n cActive: values.subcActive,\r\n sNoteInActive: values.subsNoteInActive,\r\n lstWorkingTimeID: objDataItem.SubWorkingTimeSelect,\r\n isNew: true,\r\n cDel: 'N',\r\n isDelete: true,\r\n\r\n });\r\n }\r\n \r\n setlstSubAreaData([...lstSubAreaData]);\r\n setobjDataItem({ ...objDataItem, SubWorkingTimeSelect: [] })\r\n resetFromSubmitData(setFieldValue, setFieldError, \"subAreaID\", null);\r\n resetFromSubmitData(setFieldValue, setFieldError, \"subAreaName\", '');\r\n resetFromSubmitData(setFieldValue, setFieldError, \"subcActive\", 'Y');\r\n resetFromSubmitData(setFieldValue, setFieldError, \"subsNoteInActive\", '')\r\n resetFromSubmitData(setFieldValue, setFieldError, \"subcRequireApprove\", false);\r\n setStatus_Inactive({ ...Status_Inactive, isEditeSub: false });\r\n } else if (objDataItem.SubWorkingTimeSelect != null && objDataItem.SubWorkingTimeSelect.length > 0) {\r\n if (Status_Inactive.isEditeSub) {\r\n var up = new LINQ(lstSubAreaData).FirstOrDefault(w => w.nAreaID == values.subAreaID);\r\n if (up != null) {\r\n \r\n up.sAreaName = values.subAreaName;\r\n up.cRequireApprove = values.subcRequireApprove;\r\n up.cActive = values.subcActive;\r\n up.sNoteInActive = values.subsNoteInActive;\r\n up.lstWorkingTimeID = objDataItem.SubWorkingTimeSelect;\r\n }\r\n } else {\r\n \r\n pushSubOrder();\r\n lstSubAreaData.push({\r\n nAreaID: nMaxID,\r\n nEventGroupID: 0,\r\n nCompanyID: 0,\r\n nAreaHeadID: 0,\r\n nOrder: (lstSubOrder.length),\r\n sAreaName: values.subAreaName,\r\n cRequireApprove: values.subcRequireApprove,\r\n cActive: values.subcActive,\r\n sNoteInActive: values.subsNoteInActive,\r\n lstWorkingTimeID: objDataItem.SubWorkingTimeSelect,\r\n isNew: true,\r\n cDel: 'N',\r\n isDelete: true,\r\n });\r\n }\r\n \r\n setlstSubAreaData([...lstSubAreaData]);\r\n setobjDataItem({ ...objDataItem, SubWorkingTimeSelect: [] });\r\n resetFromSubmitData(setFieldValue, setFieldError, \"subAreaID\", null);\r\n resetFromSubmitData(setFieldValue, setFieldError, \"subAreaName\", '');\r\n resetFromSubmitData(setFieldValue, setFieldError, \"subcActive\", 'Y');\r\n resetFromSubmitData(setFieldValue, setFieldError, \"subsNoteInActive\", '')\r\n resetFromSubmitData(setFieldValue, setFieldError, \"subcRequireApprove\", false);\r\n setStatus_Inactive({ ...Status_Inactive, isEditeSub: false, Sub: \"Y\" });\r\n } else {\r\n SwAlert.Error(AlertTitle.Warning, MsgValidate.PleaseSpecify + \" Working Time\", () => { });\r\n }\r\n }\r\n } else {\r\n let nPass = 0;\r\n if (Status_Inactive.isAddSub) {\r\n if (lstSubAreaData === null || lstSubAreaData.length === 0) {\r\n\r\n SwAlert.Error(AlertTitle.Warning, MsgValidate.PleaseSpecify + \" Sub Area\", () => { });\r\n nPass = 1;\r\n }\r\n } else {\r\n if (+EventGroupSelect === 1) {\r\n nPass = 0;\r\n } else if (objDataItem.WorkingTimeSelect === null || objDataItem.WorkingTimeSelect.length == 0) {\r\n SwAlert.Error(AlertTitle.Warning, MsgValidate.PleaseSpecify + \" Working Time\", () => { });\r\n nPass = 1;\r\n }\r\n }\r\n\r\n if (nPass === 0) {\r\n let obj = {\r\n nAreaID: values.nAreaID,\r\n nEventGroupID: +values.nEventGroupID,\r\n nCompanyID: +values.nCompanyID,\r\n nAreaHeadID: null,\r\n sAreaName: values.sAreaName,\r\n cRequireApprove: values.cRequireApprove,\r\n cActive: values.cActive,\r\n sNoteInActive: values.sNoteInActive,\r\n lstWorkingTimeID: objDataItem.WorkingTimeSelect,\r\n lstEventTypeID: objDataItem.EventTypeSelect,\r\n lstSubArea: lstSubAreaData,\r\n sNotificationStatus: values.NotificationStatus,\r\n nOrder: Number(values.nOrder),\r\n };\r\n DialogConfirm(() => {\r\n AxiosPost(sController + \"/SaveAreaData\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n BackToComponent(\"BackTOUser\");\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n }\r\n }\r\n };\r\n\r\n const onClearFromSumEventType = (formProps) => {\r\n resetFromData(formProps, \"subAreaName\", \"\");\r\n resetFromData(formProps, \"subcRequireApprove\", false);\r\n resetFromData(formProps, \"subcActive\", \"Y\");\r\n resetFromData(formProps, \"subsNoteInActive\", \"\");\r\n resetFromData(formProps, \"subAreaID\", null);\r\n setobjDataItem({ ...objDataItem, SubWorkingTimeSelect: [] });\r\n setStatus_Inactive({ ...Status_Inactive, Sub: \"Y\" });\r\n if (lstSubAreaData.filter(w => w.cDel != \"Y\").length < 1) {\r\n setStatus_Inactive({ ...Status_Inactive, isAddSub: false, isEditeSub: false });\r\n } else {\r\n setStatus_Inactive({ ...Status_Inactive, isEditeSub: false });\r\n }\r\n };\r\n\r\n\r\n //#endregion\r\n\r\n //#region call API\r\n\r\n const LoadData = () => {\r\n let params = new URLSearchParams(window.location.search)\r\n let ID = params.get('ID');\r\n let obj = {\r\n 'nAreaID': Decrypt(ID) > 0 ? +Decrypt(ID) : null\r\n };\r\n AxiosPost(sController + \"/LoadCreateArea\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n if (response.nPermission === 0) {\r\n NoPermission();\r\n } else {\r\n SetlstOrder(response.lstOrder)\r\n SetlstSubOrder(response.lstSubOrder)\r\n setView(response.nPermission === 1);\r\n setlstEventGroup(response.lstEventGroup);\r\n setlstCompany(response.lstCompyne);\r\n if (response.EditeAreaCreateData != null) {\r\n let d = response.EditeAreaCreateData;\r\n setInitialArea({\r\n ..._InitialDataArea,\r\n nAreaID: d.nAreaID,\r\n NotificationStatus: d.sNotificationStatus,\r\n nEventGroupID: d.nEventGroupID + \"\",\r\n nCompanyID: d.nCompanyID + \"\",\r\n nOrder: d.nOrder + \"\",\r\n sAreaName: d.sAreaName,\r\n cRequireApprove: d.cRequireApprove,\r\n cActive: d.cActive,\r\n sNoteInActive: d.sNoteInActive\r\n })\r\n\r\n setobjDataItem({ ...objDataItem, WorkingTimeSelect: d.lstWorkingTimeID, EventTypeSelect: d.lstEventTypeID });\r\n if (d.lstSubArea != null && (d.lstSubArea as []).length > 0) {\r\n setlstSubAreaData(d.lstSubArea);\r\n setStatus_Inactive({ ...Status_Inactive, Hear: d.cActive, isAddSub: true, isEdite: true })\r\n } else {\r\n setStatus_Inactive({ ...Status_Inactive, Hear: d.cActive, isAddSub: false, isEdite: true })\r\n }\r\n CompanyData(d.nEventGroupID);\r\n GetWorkTimeAndEvent(d.nEventGroupID, d.nCompanyID)\r\n setEventGroupSelect(d.nEventGroupID + \"\");\r\n }\r\n }\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n const GetWorkTimeAndEvent = async (EventGroup, Company) => {\r\n if (EventGroup != \"\" && Company != \"\") {\r\n let obj = {\r\n nCompanyID: +Company,\r\n nEventGroupID: +EventGroup\r\n };\r\n getListOrder(+Company, +EventGroup)\r\n await AxiosPost(sController + \"/GetWorkTimeAndEvent\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setWorkingTime(response.ListWorkingTimes);\r\n setEventType(response.lstEventTypes);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n } else if (EventGroup != \"\") {\r\n setWorkingTime([]);\r\n setEventType([]);\r\n await CompanyData(EventGroup);\r\n } else {\r\n setWorkingTime([]);\r\n setEventType([]);\r\n }\r\n };\r\n const CompanyData = (EventGroup) => {\r\n let qbj = {\r\n SearchEventGroupID: (+EventGroup) > 0 ? +EventGroup : null\r\n };\r\n AxiosPost(sController + \"/GetCompanyCSR\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setlstCompany(response);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n //#endregion\r\n\r\n //#region UI\r\n\r\n const SelectWorkingTime = () => {\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\r\n const isSelected = (ID: number) => objDataItem.WorkingTimeSelect.indexOf(ID) !== -1;\r\n const Pagination = () => {\r\n return (\r\n lstWorkingTime.length > 0 ?\r\n \r\n \r\n {objDataItem.WorkingTimeSelect.length > 0 && (\r\n \r\n Selected ({objDataItem.WorkingTimeSelect.length})\r\n \r\n )}\r\n \r\n \r\n : \r\n )\r\n };\r\n\r\n const handleSelectAllClick = (event: React.ChangeEvent) => {\r\n if (event.target.checked) {\r\n const newSelecteds = lstWorkingTime.map((n) => n.nWorkingTime);\r\n setobjDataItem({ ...objDataItem, WorkingTimeSelect: newSelecteds });\r\n return;\r\n }\r\n setobjDataItem({ ...objDataItem, WorkingTimeSelect: [] });\r\n };\r\n\r\n const handleClick = (event: React.MouseEvent, ID: any) => {\r\n const selectedIndex = objDataItem.WorkingTimeSelect.indexOf(ID);\r\n let newSelected: number[] = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(objDataItem.WorkingTimeSelect, ID);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(objDataItem.WorkingTimeSelect.slice(1));\r\n } else if (selectedIndex === objDataItem.WorkingTimeSelect.length - 1) {\r\n newSelected = newSelected.concat(objDataItem.WorkingTimeSelect.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n objDataItem.WorkingTimeSelect.slice(0, selectedIndex),\r\n objDataItem.WorkingTimeSelect.slice(selectedIndex + 1),\r\n );\r\n }\r\n setobjDataItem({ ...objDataItem, WorkingTimeSelect: newSelected });\r\n };\r\n return (\r\n \r\n
Select Working Time
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n 0 && objDataItem.WorkingTimeSelect.length < lstWorkingTime.length}\r\n checked={lstWorkingTime.length > 0 && objDataItem.WorkingTimeSelect.length === lstWorkingTime.length}\r\n onChange={handleSelectAllClick}\r\n inputProps={{ 'aria-label': 'select all desserts' }}\r\n disabled={isView}\r\n />\r\n \r\n Working Time\r\n Start - End\r\n \r\n \r\n \r\n {lstWorkingTime.length > 0 ? lstWorkingTime.map((row, idex) => {\r\n const isItemSelected = isSelected(+row.nWorkingTime);\r\n const labelId = `enhanced-table-checkbox-${idex}`;\r\n return (\r\n \r\n \r\n handleClick(event, row.nWorkingTime)}\r\n inputProps={{ 'aria-labelledby': labelId }}\r\n disabled={isView}\r\n />\r\n \r\n {row.sWorkingTime}\r\n {row.sStartTime + \"-\" + row.sEndTime}\r\n \r\n )\r\n })\r\n : }\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n };\r\n\r\n const SelectEventType = () => {\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\r\n const isSelected = (ID: number) => objDataItem.EventTypeSelect.indexOf(ID) !== -1;\r\n const Pagination = useCallback(() => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n lstEventType.length > 0 ?\r\n \r\n \r\n {objDataItem.EventTypeSelect.length > 0 && (\r\n \r\n Selected ({objDataItem.EventTypeSelect.length})\r\n \r\n )}\r\n \r\n {/* \r\n \r\n */}\r\n \r\n : \r\n )\r\n }, [lstEventType]);\r\n\r\n const handleSelectAllClick = (event: React.ChangeEvent) => {\r\n if (event.target.checked) {\r\n const newSelecteds = lstEventType.map((n) => n.nEventTypeID);\r\n setobjDataItem({ ...objDataItem, EventTypeSelect: newSelecteds });\r\n return;\r\n }\r\n setobjDataItem({ ...objDataItem, EventTypeSelect: [] });\r\n };\r\n\r\n const handleClick = (event: React.MouseEvent, ID: any) => {\r\n const selectedIndex = objDataItem.EventTypeSelect.indexOf(ID);\r\n let newSelected: number[] = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(objDataItem.EventTypeSelect, ID);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(objDataItem.EventTypeSelect.slice(1));\r\n } else if (selectedIndex === objDataItem.EventTypeSelect.length - 1) {\r\n newSelected = newSelected.concat(objDataItem.EventTypeSelect.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n objDataItem.EventTypeSelect.slice(0, selectedIndex),\r\n objDataItem.EventTypeSelect.slice(selectedIndex + 1),\r\n );\r\n }\r\n setobjDataItem({ ...objDataItem, EventTypeSelect: newSelected });\r\n };\r\n\r\n return (\r\n \r\n
Select Event Type
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n 0 && objDataItem.EventTypeSelect.length < lstEventType.length}\r\n checked={lstEventType.length > 0 && objDataItem.EventTypeSelect.length === lstEventType.length}\r\n onChange={handleSelectAllClick}\r\n inputProps={{ 'aria-label': 'select all desserts' }}\r\n disabled={isView}\r\n />\r\n \r\n \r\n Event Type\r\n Event Group\r\n \r\n \r\n \r\n {lstEventType.length > 0 ? new LINQ(lstEventType).ToArray().map((row, idex) => {\r\n const isItemSelected = isSelected(+row.nEventTypeID);\r\n const labelId = `enhanced-table-checkbox-${idex}`;\r\n return (\r\n \r\n \r\n handleClick(event, row.nEventTypeID)}\r\n inputProps={{ 'aria-labelledby': labelId }}\r\n disabled={isView}\r\n />\r\n \r\n \r\n {row.sEventTypeName}\r\n {row.sEventGroupNamr}\r\n \r\n )\r\n })\r\n : }\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n };\r\n\r\n const AreaHear = (props) => {\r\n const { formProps } = props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n setEventGroupSelect(data);\r\n formProps.values.nCompanyID = \"\";\r\n GetWorkTimeAndEvent(data, formProps.values.nCompanyID) \r\n }} disable={Status_Inactive.isEdite} />\r\n \r\n \r\n {\r\n\r\n GetWorkTimeAndEvent(formProps.values.nEventGroupID, data);\r\n setWorkingTime([]);\r\n setobjDataItem({ ...objDataItem, EventTypeSelect: [], SubWorkingTimeSelect: [], WorkingTimeSelect: [] });\r\n setlstSubAreaData([]);\r\n }} disable={Status_Inactive.isEdite} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Status_Inactive.isAddSub === false && }\r\n \r\n \r\n \r\n \r\n { setStatus_Inactive({ ...Status_Inactive, Hear: e }) }}\r\n defaultvalue\r\n disable={isView}\r\n />\r\n \r\n {\r\n Status_Inactive.Hear === \"N\" ?\r\n \r\n
\r\n \r\n
\r\n
\r\n : \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {\r\n Status_Inactive.isAddSub === false && {+EventGroupSelect != 1 && } \r\n }\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n {!isView && { setStatus_Inactive({ ...Status_Inactive, isAddSub: true }) }}>Sub Area}\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n )\r\n };\r\n\r\n const handleSelectAllClick_sub = (event: React.ChangeEvent) => {\r\n if (event.target.checked) {\r\n const newSelecteds = lstWorkingTime.map((n) => n.nWorkingTime);\r\n setobjDataItem({ ...objDataItem, SubWorkingTimeSelect: newSelecteds });\r\n return;\r\n }\r\n setobjDataItem({ ...objDataItem, SubWorkingTimeSelect: [] });\r\n };\r\n\r\n const handleClick_sub = (event: React.MouseEvent, ID: any) => {\r\n const selectedIndex = objDataItem.SubWorkingTimeSelect.indexOf(ID);\r\n let newSelected: number[] = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(objDataItem.SubWorkingTimeSelect, ID);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(objDataItem.SubWorkingTimeSelect.slice(1));\r\n } else if (selectedIndex === objDataItem.SubWorkingTimeSelect.length - 1) {\r\n newSelected = newSelected.concat(objDataItem.SubWorkingTimeSelect.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n objDataItem.SubWorkingTimeSelect.slice(0, selectedIndex),\r\n objDataItem.SubWorkingTimeSelect.slice(selectedIndex + 1),\r\n );\r\n }\r\n\r\n\r\n setobjDataItem({ ...objDataItem, SubWorkingTimeSelect: newSelected });\r\n };\r\n\r\n const getListOrder = (nCompanyID, nEventGroupID) => {\r\n\r\n let params = new URLSearchParams(window.location.search)\r\n let ID = params.get('ID');\r\n let nAreaID = Decrypt(ID) > 0 ? +Decrypt(ID) : null\r\n\r\n if (nAreaID === null) {\r\n let obj = {\r\n SearchCompanyID: nCompanyID,\r\n SearchEventGroupID: nEventGroupID\r\n };\r\n console.log(\"id\", obj)\r\n AxiosPost(sController + \"/getListOrder\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n SetlstOrder(response.lstOrder)\r\n setInitialArea({\r\n ..._InitialDataArea,\r\n nOrder: response.nOrder + \"\",\r\n nEventGroupID: nEventGroupID + \"\",\r\n nCompanyID: nCompanyID + \"\",\r\n });\r\n })\r\n }, () => { }, UnBlockUI, UnBlockUI)\r\n }\r\n }\r\n\r\n const ChangeSubOrder = (from, to) => {\r\n console.log(\"from\", from)\r\n console.log(\"to\", to)\r\n console.log(\"lstSubAreaData\", lstSubAreaData)\r\n if (from != to) {\r\n let qbj = {\r\n sFrom: from,\r\n sTo: to,\r\n lstSubArea: lstSubAreaData\r\n };\r\n AxiosPost(sController + \"/ChangeSubOrder\", qbj, (response) => {\r\n ResultAPI(true, response, null, () => {\r\n setlstSubAreaData(response.lstSubArea);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n }\r\n\r\n const GetNameWorkTime = (lstDataWorkTime) => {\r\n let lstTime = new LINQ(lstDataWorkTime).ToList();\r\n let q = new LINQ(lstWorkingTime).Where(w => lstTime.Contains(w.nWorkingTime)).Select(s => s.sWorkingTime).ToArray();\r\n let sName = q.join(\",\");\r\n return sName;\r\n };\r\n\r\n const editeSubArea = (item, formProps) => {\r\n\r\n formProps.values.subAreaID = item.nAreaID;\r\n formProps.values.subAreaName = item.sAreaName;\r\n formProps.values.subcRequireApprove = item.cRequireApprove;\r\n formProps.values.subcActive = item.cActive;\r\n formProps.values.subsNoteInActive = item.sNoteInActive;\r\n setInitialArea({ ..._InitialDataArea });\r\n setobjDataItem({ ...objDataItem, SubWorkingTimeSelect: item.lstWorkingTimeID });\r\n setStatus_Inactive({ ...Status_Inactive, Sub: item.cActive, isEditeSub: true, });\r\n };\r\n\r\n const AreaSub = (props) => {\r\n const { formProps } = props;\r\n const SelectWorkingTime = () => {\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\r\n const isSelected = (ID: number) => objDataItem.SubWorkingTimeSelect.indexOf(ID) !== -1;\r\n const Pagination = useCallback(() => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n lstWorkingTime.length > 0 ?\r\n \r\n \r\n {objDataItem.SubWorkingTimeSelect.length > 0 && (\r\n \r\n Selected ({objDataItem.SubWorkingTimeSelect.length})\r\n \r\n )}\r\n \r\n {/* \r\n \r\n */}\r\n \r\n : \r\n\r\n )\r\n }, [lstWorkingTime]);\r\n\r\n return (\r\n \r\n
Select Working Time
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n 0 && objDataItem.SubWorkingTimeSelect.length < lstWorkingTime.length}\r\n checked={lstWorkingTime.length > 0 && objDataItem.SubWorkingTimeSelect.length === lstWorkingTime.length}\r\n onChange={handleSelectAllClick_sub}\r\n inputProps={{ 'aria-label': 'select all desserts' }}\r\n />\r\n \r\n Working Time\r\n Start - End\r\n \r\n \r\n \r\n {lstWorkingTime.length > 0 ? lstWorkingTime.map((row, idex) => {\r\n const isItemSelected = isSelected(+row.nWorkingTime);\r\n const labelId = `enhanced-table-checkbox-${idex}`;\r\n return (\r\n \r\n \r\n handleClick_sub(event, row.nWorkingTime)}\r\n inputProps={{ 'aria-labelledby': labelId }}\r\n />\r\n \r\n {row.sWorkingTime}\r\n {row.sStartTime + \"-\" + row.sEndTime}\r\n \r\n )\r\n })\r\n : }\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n };\r\n\r\n const SubAreaData = () => {\r\n const deleteSubArea = (id) => {\r\n DialogConfirmDelete(() => {\r\n var q = new LINQ(lstSubAreaData).Where(w => w.nAreaID === id).FirstOrDefault()\r\n if (q != null) q.cDel = \"Y\";\r\n setlstSubAreaData([...lstSubAreaData]);\r\n Swal.close();\r\n });\r\n };\r\n\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\r\n const Pagination = useCallback(() => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n lstWorkingTime.length > 0 ?\r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n Selected ({selected.length}) Row\r\n \r\n )}\r\n \r\n {/* \r\n \r\n */}\r\n \r\n : \r\n )\r\n }, [lstWorkingTime]);\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Order\r\n Sub Area Name\r\n Working Time\r\n Require Approval\r\n status\r\n {!isView && }\r\n \r\n \r\n \r\n {lstSubAreaData.filter(w => w.cDel === \"N\").length > 0 ? lstSubAreaData.filter(w => w.cDel === \"N\").map((row, idex) => {\r\n return (\r\n \r\n \r\n x.value === row.nOrder + \"\")}\r\n isClearable={false}\r\n onChange={values => {\r\n ChangeSubOrder(row.nOrder + \"\", values.value)\r\n }}\r\n disable={isView}\r\n />\r\n \r\n {row.sAreaName}\r\n {GetNameWorkTime(row.lstWorkingTimeID)}\r\n {row.cRequireApprove ? \"Yes\" : \"No\"}\r\n {row.cActive === \"Y\" ? \"Active\" : \"Inactive\"}\r\n {!isView && \r\n \r\n {/* {Status_Inactive.isEditeSub === false && */}\r\n editeSubArea(row, formProps)} >\r\n {row.isDelete && deleteSubArea(row.nAreaID)} />}\r\n {/* } */}\r\n \r\n } \r\n \r\n )\r\n })\r\n : }\r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n return (\r\n Status_Inactive.isAddSub ?\r\n \r\n \r\n \r\n \r\n {isView &&
Sub Area
}\r\n {!isView && \r\n
Sub Area (Do not use duplicate name)
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { setStatus_Inactive({ ...Status_Inactive, Sub: e }) }}\r\n defaultvalue\r\n />\r\n \r\n {\r\n Status_Inactive.Sub === \"N\" ?\r\n \r\n
\r\n \r\n
\r\n
\r\n : \r\n }\r\n\r\n
\r\n \r\n \r\n \r\n {+EventGroupSelect != 1 && }\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n { ButtonMode = \"SUB\"; formProps.submitForm(formProps) }}>\r\n Confirm Add Sub Area\r\n \r\n { onClearFromSumEventType(formProps) }} />\r\n \r\n
}\r\n \r\n
\r\n
\r\n
\r\n
\r\n : \r\n )\r\n };\r\n\r\n return (\r\n \r\n \r\n {(formProps) => {\r\n return (\r\n
\r\n {\r\n scrollToElementValidate(ButtonMode === \"\" ? \"formArea\" : \"\");\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isView && { ButtonMode = \"\"; formProps.submitForm() }} />}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n }\r\n \r\n
\r\n )\r\n //#endregion\r\n}\r\nexport default Create_AreaStructure;","import React, { Fragment, useEffect, useState } from 'react'\r\nimport { Encrypt, AxiosPost, ResultAPI, FnBlock_UI, DialogConfirmDelete } from '../SysComponent/SystemComponent';\r\nimport {\r\n Paper, Grid, TableContainer, TableSortLabel, IconButton, Typography, TablePagination,\r\n DialogContent, DialogActions\r\n} from '@material-ui/core';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport Button from '@material-ui/core/Button';\r\nimport SelectNoForm from '../form/SelectNoFormItem';\r\nimport {\r\n useStyles, MuiTableTableToolbar, MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order,\r\n PerPageOptions, StyledTableBody, stableSort, getComparator, MuiRowNoData, HeadCell\r\n} from '../form/Table/CustomTable';\r\nexport interface SubEventTypeProps {\r\n open: boolean;\r\n onClose: (value: string) => void;\r\n rows: any[];\r\n}\r\n\r\nexport const DialogSubEventType = (props: SubEventTypeProps) => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('desc');\r\n const [orderBy, setOrderBy] = React.useState('dUpdateDate');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\r\n const { onClose, open, rows } = props;\r\n const [lstSubOrder, SetlstSubOrder] = useState([] as any);\r\n const [lstData, SetlstData] = useState([] as any);\r\n const [nID, SetnID] = useState(0);\r\n\r\n const handleClose = () => {\r\n onClose(\"\");\r\n };\r\n\r\n useEffect(() => {\r\n LoadData();\r\n console.log(\"rows\", rows)\r\n \r\n //setPage(0);\r\n //setRowsPerPage(10);\r\n }, [rows]);\r\n\r\n const LoadData = () => {\r\n let lst = [] as any;\r\n for (let i = 0; i < rows.length; i++) {\r\n lst.push({ label: (i + 1) + \"\", value: (i + 1) + \"\" });\r\n SetnID(rows[i].nEventTypeHeadID)\r\n }\r\n SetlstData(rows)\r\n SetlstSubOrder(lst);\r\n setPage(0);\r\n setRowsPerPage(10);\r\n }\r\n \r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const ChangeOrder = (from, to) => {\r\n console.log(\"from\", from)\r\n console.log(\"to\", to)\r\n console.log(\"lstData\", lstData)\r\n if (from != to) {\r\n let qbj = {\r\n sFrom: from,\r\n sTo: to,\r\n lstSubEventType: lstData,\r\n nEventTypeID: nID,\r\n };\r\n AxiosPost(\"EventType\" + \"/ChangeSubOrderFromModal\", qbj, (response) => {\r\n ResultAPI(true, response, null, () => {\r\n SetlstData(response.lstSubEvent)\r\n })\r\n }, () => { }, UnBlockUI, UnBlockUI)\r\n }\r\n }\r\n\r\n //#region set Header\r\n const headCells: HeadCell[] = [\r\n //{ id: 'No', numeric: true, disablePadding: true, label: 'No.', width: 5, isSort: false },\r\n { id: 'nOrder', numeric: true, disablePadding: true, label: 'Order', width: 15, isSort: true },\r\n { id: 'sEventTypeName', numeric: false, disablePadding: true, label: 'Sub Event Type', width: 40, isSort: true },\r\n { id: 'sNote', numeric: true, disablePadding: false, label: 'Sub Event Type Definition', width: 40, isSort: true },\r\n { id: 'dUpdate', numeric: true, disablePadding: false, label: 'Last Update', width: 15, isSort: true },\r\n\r\n ];\r\n\r\n const Header = () => {\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n //#region set Body\r\n const BodyData = () => {\r\n return (\r\n \r\n\r\n {lstData.length > 0 ? stableSort(lstData, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((row, index) => {\r\n return (\r\n \r\n \r\n x.value === row.nOrder + \"\")}\r\n isClearable={false}\r\n onChange={values => {\r\n ChangeOrder(row.nOrder + \"\", values.value)\r\n }}\r\n />\r\n \r\n {row.sEventTypeName}\r\n {row.sNote}\r\n \r\n {new Intl.DateTimeFormat(\"en-GB\", {\r\n year: \"numeric\",\r\n month: \"numeric\",\r\n day: \"2-digit\",\r\n }).format(new Date(row.dUpdate))}\r\n \r\n \r\n );\r\n })\r\n :\r\n \r\n }\r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n //#region set Pagination\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n lstData.length > 0 ?\r\n \r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n return (\r\n \r\n Sub Event Type\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}","import React, { Fragment, useEffect } from 'react'\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { Link } from 'react-router-dom';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport { Encrypt, AxiosPost, ResultAPI, FnBlock_UI, DialogConfirmDelete, NoPermission, ResultDeleteAPI, AxiosPostExportFile } from 'components/SysComponent/SystemComponent';\r\nimport {\r\n MuiButtonSearch, MuiButtonEdite, MuiButtonAdd, MuiButtonDelete, EventColorCompronent, MuiIconButtonItem\r\n , MuiIconButtonMessage, MuiIconCheckBoxDelete, MuiButtonExport, MuiButtonView\r\n} from '../SysComponent/MaterialComponent'\r\nimport {\r\n useStyles, MuiTableTableToolbar, MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order,\r\n PerPageOptions, StyledTableBody, stableSort, getComparator, MuiRowNoData, HeadCell, defaultPage\r\n} from '../form/Table/CustomTable';\r\nimport {\r\n Paper, Grid, TableContainer, TableSortLabel, Typography, TablePagination\r\n} from '@material-ui/core';\r\nimport SelectNoForm from '../form/SelectNoFormItem';\r\nimport { TextFieldInputFreeText } from '../form/InputNoForm';\r\nimport { DialogSubEventType } from '../DialogComponents/DialogSubEventType';\r\nimport { DialogRemark } from '../DialogComponents/DialogRemark';\r\nconst sController = \"EventType\";\r\nconst dateFormat = require('dateformat');\r\nconst EventType = () => {\r\n\r\n //#region useState\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('nGroupOrder');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(defaultPage);\r\n const isSelected = (ID: number) => selected.indexOf(ID) !== -1;\r\n const [rows, setRowData] = React.useState([] as any[]);\r\n const [lstEventGroup, setEventGroup] = React.useState([] as any[]);\r\n const [sTxtSearch, setsTxtSearch] = React.useState(\"\");\r\n const [EventGroupID, setEventGroupID] = React.useState(\"\");\r\n const [lstSubEventType, setlstSubEventType] = React.useState([] as any[]);\r\n const [sNote, setNote] = React.useState(\"\" as string);\r\n const [nPermission, setPermission] = React.useState(0);\r\n const [lstOrder, setlstOrder] = React.useState([] as any[]);\r\n const [allowEditOrder, setallowEditOrder] = React.useState(false);\r\n //#endregion\r\n\r\n //#region on Load\r\n const LoadData = () => {\r\n let qbj = {\r\n sTestSearch: sTxtSearch,\r\n nEventGroupID: (+EventGroupID) > 0 ? +EventGroupID : null,\r\n };\r\n\r\n setallowEditOrder((+EventGroupID) > 0 ? true : false)\r\n \r\n AxiosPost(sController + \"/LaodDataList\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n if (response.nPermission === 0) {\r\n NoPermission();\r\n } else {\r\n setPermission(response.nPermission);\r\n setRowData(response.lstData);\r\n setEventGroup(response.lstEventGroup);\r\n setPage(0);\r\n setRowsPerPage(defaultPage);\r\n setlstOrder(response.lstOrder);\r\n }\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n const setObjExport = () => {\r\n let obj = {\r\n sTestSearch: sTxtSearch,\r\n nEventGroupID: (+EventGroupID) > 0 ? +EventGroupID : null,\r\n // lstEventGroup: lstEventGroup\r\n };\r\n return obj;\r\n }\r\n const exportExcel = () => AxiosPostExportFile(sController + \"/ExportExcel\", setObjExport(), \"1.EventType_Export_\" + (dateFormat(new Date(), \"ddmmyyyyHHMM\")) + \".xlsx\", () => { }, BlockUI, UnBlockUI);\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n //#endregion\r\n\r\n //#region event\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const handleSelectAllClick = (event: React.ChangeEvent) => {\r\n if (event.target.checked) {\r\n const newSelecteds = rows.map((n) => n.nEventTypeID);\r\n setSelected(newSelecteds);\r\n return;\r\n }\r\n setSelected([]);\r\n };\r\n\r\n const handleClick = (event: React.MouseEvent, ID: any) => {\r\n const selectedIndex = selected.indexOf(ID);\r\n let newSelected: number[] = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, ID);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n setSelected(newSelected);\r\n };\r\n const onDelete = () => {\r\n DialogConfirmDelete(() => {\r\n let qbj = { lstEventTypeID: selected };\r\n AxiosPost(sController + \"/DeleteEventType\", qbj, (response) => {\r\n ResultDeleteAPI(false, response, null, () => {\r\n LoadData();\r\n setSelected([]);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n };\r\n\r\n const [open, setOpen] = React.useState({ EventType: false, Remark: false });\r\n const handleClose = (value: string) => {\r\n setOpen({ ...open, EventType: false });\r\n };\r\n\r\n const popupSubEventType = (SubType) => {\r\n setOpen({ ...open, EventType: true });\r\n setlstSubEventType([...SubType]);\r\n };\r\n const handleCloseRemark = (value: string) => {\r\n setOpen({ ...open, Remark: false });\r\n };\r\n\r\n const popupRemark = (sNote) => {\r\n setOpen({ ...open, Remark: true });\r\n setNote(sNote);\r\n };\r\n //#endregion\r\n\r\n //#region set Header\r\n const headCells: HeadCell[] = [\r\n { id: 'No', numeric: true, disablePadding: true, label: 'No.', width: 5, isSort: false },\r\n { id: 'nOrder', numeric: true, disablePadding: true, label: 'Order', width: 15, isSort: true },\r\n { id: 'sEventColour', numeric: false, disablePadding: true, label: 'Status', width: 5, isSort: false },\r\n { id: 'sEventTypeName', numeric: false, disablePadding: true, label: 'Event Type', width: 35, isSort: true },\r\n { id: 'sSubType', numeric: false, disablePadding: false, label: 'Sub Event Type', width: 10, isSort: false },\r\n { id: 'sEventGroupName', numeric: true, disablePadding: false, label: 'Event Group', width: 10, isSort: true },\r\n { id: 'Note', numeric: true, disablePadding: false, label: 'Definition', width: 4, isSort: false },\r\n { id: 'sUpdateBy', numeric: true, disablePadding: false, label: 'Updated By', width: 25, isSort: true },\r\n { id: 'dUpdate', numeric: true, disablePadding: false, label: 'Last Update', width: 10, isSort: true },\r\n\r\n ];\r\n\r\n const Header = () => {\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n {nPermission === 2 && \r\n 0 && selected.length < rows.length}\r\n checked={rows.length > 0 && selected.length === rows.length}\r\n onChange={handleSelectAllClick}\r\n />\r\n\r\n }\r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n \r\n {nPermission === 2 && \r\n \r\n }\r\n \r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n const ChangeOrder = (from, to,nID) => {\r\n if (from != to) {\r\n let qbj = {\r\n sFrom: from,\r\n sTo: to,\r\n sTableName: \"event\",\r\n nID: nID,\r\n nSubID: EventGroupID\r\n };\r\n AxiosPost(\"Company\" + \"/SaveChangeOrder\", qbj, (response) => {\r\n ResultAPI(true, response, null, () => {\r\n LoadData();\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n }\r\n\r\n //#region set Body\r\n const BodyData = () => {\r\n return (\r\n \r\n\r\n {rows.length > 0 ? stableSort(rows, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((row, index) => {\r\n const isItemSelected = isSelected(+row.nEventTypeID);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n\r\n return (\r\n \r\n {nPermission === 2 && \r\n handleClick(event, row.nEventTypeID)}\r\n inputProps={{ 'aria-labelledby': labelId }}\r\n />\r\n }\r\n {(rowsPerPage * (page)) + (index + 1)} \r\n To change order, please filter Event Group.} placement=\"bottom\" arrow>\r\n \r\n x.value === row.nOrder + \"\")}\r\n isClearable={false}\r\n disable={!allowEditOrder || nPermission !== 2}\r\n onChange={values => {\r\n ChangeOrder(row.nOrder + \"\", values.value, row.nEventTypeID)\r\n }}\r\n />\r\n \r\n \r\n \r\n {row.sEventTypeName}\r\n {(row.lstSuData as any).length > 0 && { popupSubEventType(row.lstSuData) }} />}\r\n {row.sEventGroupName}\r\n {row.sNote && { popupRemark(row.sNote) }} />}\r\n {row.sUpdateBy}\r\n \r\n {dateFormat(row.dUpdate, \"dd/mm/yyyy\")}\r\n \r\n \r\n {nPermission === 2 && \r\n \r\n }\r\n {nPermission === 1 && \r\n \r\n }\r\n \r\n \r\n );\r\n })\r\n :\r\n nPermission === 2 ? : \r\n }\r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n //#region set Pagination\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n rows.length > 0 ?\r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n )}\r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n Selected ({selected.length}) Row\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n\r\n //#region Fiter\r\n\r\n const Fiter = () => {\r\n\r\n return (\r\n \r\n \r\n \r\n x.value === EventGroupID)}\r\n isClearable={true}\r\n onChange={values => { setEventGroupID(values != null ? values.value : null) }}\r\n />\r\n \r\n \r\n\r\n { setsTxtSearch(val) }} />\r\n \r\n \r\n {\" \"}\r\n \r\n\r\n \r\n
\r\n {rows.length > 0 ?
\r\n { exportExcel() }} />\r\n
: }\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n )\r\n };\r\n //#endregion\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\nexport default EventType;\r\n","\r\nimport React, { Fragment, useEffect, useState, useCallback } from 'react'\r\nimport { Formik, Form } from \"formik\";\r\nimport * as yup from 'yup';\r\nimport { Grid, Paper, TableContainer } from '@material-ui/core';\r\nimport {\r\n FnBlock_UI, AxiosPost, ResultAPI, AlertMsg, MsgValidate,\r\n MsgValidateMaxLength, scrollToElementValidate, BackToComponent,\r\n Effect, SwAlert, AlertTitle, resetFromData, DialogConfirmDelete, resetFromSubmitData, DialogConfirm, Decrypt, NoPermission\r\n} from 'components/SysComponent/SystemComponent';\r\nimport RadioFormItem from '../form/RadioFormItem';\r\nimport SelectFormItem from '../form/SelectFormItem';\r\nimport InputFormItem from 'components/form/InputFormItem';\r\nimport TextAreaFormItem from \"../form/TextAreaFormItem\";\r\nimport SelectNoForm from '../form/SelectNoFormItem';\r\nimport {\r\n MuiButtonSave, MuiButtonCancel, MuiButtonAdd, MuiButtonClear, MuiIconButtonDelete, MuiButtonConfirm, MuiIconButtonEdite\r\n} from 'components/SysComponent/MaterialComponent';\r\nimport { MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, StyledTableBody, MuiRowNoData } from '../form/Table/CustomTable';\r\nimport { List as LINQ } from 'linqts';\r\nimport Swal from \"sweetalert2\";\r\nimport { Link } from 'react-router-dom';\r\nimport CheckboxFormItem from '../form/CheckboxFormItem';\r\nconst sController = \"EventType\";\r\nconst Create_EventType = () => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n\r\n const arrStatus = [{ label: \"Active\", value: \"Y\" }, { label: \"Inactive\", value: \"N\" }];\r\n const [arrEventColour, setarrEventColour] = useState([] as any[]);\r\n const [lstOrder, SetlstOrder] = useState([] as any);\r\n const [lstSubOrder, SetlstSubOrder] = useState([] as any);\r\n const [lstEventGroup, setlstEventGroup] = useState([] as any[]);\r\n const [isAddSub, setisAddSub] = useState(false as any);\r\n const [lstSubEventType, setlstSubEventType] = useState([] as any[]);\r\n const [isStatus_Inactive, setStatusInactive] = useState(\"Y\");\r\n const [isStatus_Inactive_sub, setStatusInactive_sub] = useState(\"Y\");\r\n const [isEdite, setisEdite] = useState(false);\r\n const [isView, setisView] = useState(false);\r\n let ButtonMode = \"\";\r\n const _InitialDataEventType_IN = {\r\n EventTypeID: null,\r\n EventColour: \"3\",\r\n nOrder: \"1\",\r\n EventGroup: \"\",\r\n EventTypeName: \"\",\r\n EventTypeSubName: \"\",\r\n Note: \"\",\r\n Status: \"Y\",\r\n InactiveRemark: \"\",\r\n cAdvanceReport: false,\r\n SubEventTypeID: null,\r\n SubEventTypeName: \"\",\r\n SubEventTypeSubName: \"\",\r\n SubNote: \"\",\r\n SubStatus: \"Y\",\r\n subInactiveRemark: \"\",\r\n subcAdvanceReport: false,\r\n nSubOrder: \"1\",\r\n\r\n\r\n };\r\n const [_InitialDataEventType, setInitialEventType] = useState(_InitialDataEventType_IN as any);\r\n\r\n const _validateForm = () => {\r\n if (ButtonMode === \"\") {\r\n return validateUser\r\n } else {\r\n return validateUserSubEventType;\r\n }\r\n }\r\n const validateUser = yup.object().shape({\r\n EventColour: yup.string().required(MsgValidate.PleaseSpecify + 'Event Colour'),\r\n EventGroup: yup.string().required(MsgValidate.PleaseSpecify + 'Event Group'),\r\n EventTypeName: yup.string().max(200, MsgValidateMaxLength(\"Event Type\", 200)).required(MsgValidate.PleaseSpecify + 'Event Type'),\r\n EventTypeSubName: yup.string().max(50, MsgValidateMaxLength(\"Short Event Type\", 50)).required(MsgValidate.PleaseSpecify + 'Short Event Type'),\r\n Status: yup.string().required(MsgValidate.PleaseSpecify + 'Status'),\r\n Note: yup.string().max(1000, MsgValidateMaxLength(\"Definition\", 1000)),\r\n InactiveRemark: isStatus_Inactive === \"N\" ? yup.string().max(500, MsgValidateMaxLength(\" Note set Inactive\", 500)).required(MsgValidate.PleaseSpecify + ' Note set Inactive') : \"\",\r\n\r\n });\r\n const validateUserSubEventType = yup.object().shape({\r\n SubEventTypeName: yup.string().max(200, MsgValidateMaxLength(\"Sub Event Type\", 200)).required(MsgValidate.PleaseSpecify + 'Sub Event Type'),\r\n SubEventTypeSubName: yup.string().max(50, MsgValidateMaxLength(\"Short Sub Event Type\", 50)).required(MsgValidate.PleaseSpecify + 'Short Sub Event Type'),\r\n SubStatus: yup.string().required(MsgValidate.PleaseSpecify + 'Status'),\r\n SubNote: yup.string().max(1000, MsgValidateMaxLength(\"Definition\", 1000)),\r\n subInactiveRemark: isStatus_Inactive_sub === \"N\" ? yup.string().max(500, MsgValidateMaxLength(\" Note set Inactive\", 500)).required(MsgValidate.PleaseSpecify + ' Note set Inactive') : \"\",\r\n\r\n });\r\n\r\n const LoadData = () => {\r\n let params = new URLSearchParams(window.location.search)\r\n let ID = params.get('ID');\r\n\r\n let obj = {\r\n 'EventTypeID': +Decrypt(ID) > 0 ? +Decrypt(ID) : null\r\n };\r\n AxiosPost(sController + \"/GetEventTypeCreate\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n if (response.nPermission == 0) {\r\n NoPermission();\r\n } else {\r\n SetlstOrder(response.lstOrder)\r\n SetlstSubOrder(response.lstSubOrder)\r\n setisView(response.nPermission === 1);\r\n setarrEventColour([...response.lstEventColor]);\r\n setlstEventGroup(response.lstEventGroup);\r\n if (response.EventTypeData != null) {\r\n let data = response.EventTypeData;\r\n setInitialEventType({\r\n ..._InitialDataEventType,\r\n EventTypeID: data.nEventTypeID,\r\n EventColour: data.nEventColor + \"\",\r\n EventGroup: data.nEventGroupID + \"\",\r\n EventTypeName: data.sEventTypeName,\r\n nOrder: data.nOrder + \"\",\r\n nSubOrder: response.lstSubOrder.length + \"\",\r\n EventTypeSubName: data.sEventTypeSubName,\r\n InactiveRemark: data.InactiveRemark,\r\n Note: data.sNote,\r\n Status: data.cActive,\r\n cAdvanceReport: data.cAdvanceReport,\r\n SubEventTypeName: \"\",\r\n SubEventTypeSubName: \"\",\r\n SubNote: \"\",\r\n SubStatus: \"Y\",\r\n\r\n });\r\n setisEdite(true);\r\n setStatusInactive(data.cActive);\r\n if (data.lstSubEventTtype != null && (data.lstSubEventTtype as []).length > 0) {\r\n setlstSubEventType([...data.lstSubEventTtype]);\r\n setisAddSub(true);\r\n }\r\n }\r\n else {\r\n setInitialEventType({\r\n ..._InitialDataEventType,\r\n nOrder: response.lstOrder.length + \"\",\r\n nSubOrder: response.lstSubOrder.length + \"\",\r\n })\r\n }\r\n }\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n\r\n const onSaveData = (values, { setFieldValue, setFieldError }) => {\r\n \r\n if (ButtonMode === \"SUB\") {\r\n\r\n let latSub = new LINQ(lstSubEventType).ToList();\r\n let nMaxID = latSub.Any() ? latSub.Max(m => m.nEventTypeID) + 1 : 1;\r\n // resetFromData(formProps, \"SubEventTypeID\", null);\r\n if (values.SubEventTypeID != null) {\r\n if (latSub.Any(a => a.nEventTypeID != values.SubEventTypeID && (a.sEventTypeName + \"\").toLowerCase().trim() === (values.SubEventTypeName + \"\").toLowerCase().trim())) {\r\n SwAlert.Warning(AlertTitle.Warning, AlertMsg.Duplicate, () => { });\r\n } else if (latSub.Any(a => a.nEventTypeID != values.SubEventTypeID && (a.sEventTypeSubName + \"\").toLowerCase().trim() === (values.SubEventTypeName + \"\").toLowerCase().trim())) {\r\n SwAlert.Warning(AlertTitle.Warning, AlertMsg.Duplicate, () => { });\r\n } else {\r\n // edit\r\n var up = latSub.FirstOrDefault(w => w.nEventTypeID === values.SubEventTypeID);\r\n if (up != null) {\r\n up.sEventTypeName = values.SubEventTypeName.trim();\r\n up.sEventTypeSubName = values.SubEventTypeSubName.trim();\r\n up.sNote = values.SubNote;\r\n up.cActive = values.SubStatus;\r\n up.InactiveRemark = values.subInactiveRemark;\r\n up.cAdvanceReport = values.subcAdvanceReport;\r\n setlstSubEventType([...lstSubEventType]);\r\n //resetFromSubmitData(setFieldValue, setFieldError, \"nSubOrder\", (lstSubOrder.length + 1) + \"\")\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SubEventTypeID\", null)\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SubEventTypeName\", '')\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SubEventTypeSubName\", '')\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SubNote\", '')\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SubStatus\", 'Y')\r\n resetFromSubmitData(setFieldValue, setFieldError, \"subInactiveRemark\", '')\r\n resetFromSubmitData(setFieldValue, setFieldError, \"subcAdvanceReport\", false)\r\n setisEditeSubEventType(false);\r\n setStatusInactive_sub(\"Y\");\r\n }\r\n }\r\n } else {\r\n if (latSub.Any(a => (a.sEventTypeName + \"\").toLowerCase().trim() === (values.SubEventTypeName + \"\").toLowerCase().trim())) {\r\n SwAlert.Warning(AlertTitle.Warning, AlertMsg.Duplicate, () => { });\r\n } else if (latSub.Any(a => (a.sEventTypeSubName + \"\").toLowerCase().trim() === (values.SubEventTypeSubName + \"\").toLowerCase().trim())) {\r\n SwAlert.Warning(AlertTitle.Warning, AlertMsg.Duplicate, () => { });\r\n } else {\r\n // new \r\n pushSubOrder();\r\n lstSubEventType.push({\r\n nEventTypeID: nMaxID,\r\n nEventGroupID: 0,\r\n nEventTypeHeadID: 0,\r\n sEventTypeName: values.SubEventTypeName.trim(),\r\n sEventTypeSubName: values.SubEventTypeSubName.trim(),\r\n sNote: values.SubNote,\r\n nEventColor: 0,\r\n nOrder: (lstSubOrder.length),\r\n cActive: values.SubStatus,\r\n InactiveRemark: values.subInactiveRemark,\r\n cAdvanceReport: values.subcAdvanceReport,\r\n isDelete: true,\r\n isNew: true,\r\n });\r\n setlstSubEventType([...lstSubEventType]);\r\n //resetFromSubmitData(setFieldValue, setFieldError, \"nSubOrder\", (lstSubOrder.length + 1) + \"\")\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SubEventTypeID\", null)\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SubEventTypeName\", '')\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SubEventTypeSubName\", '')\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SubNote\", '')\r\n resetFromSubmitData(setFieldValue, setFieldError, \"SubStatus\", 'Y')\r\n setStatusInactive_sub(\"Y\");\r\n resetFromSubmitData(setFieldValue, setFieldError, \"subInactiveRemark\", '')\r\n resetFromSubmitData(setFieldValue, setFieldError, \"subcAdvanceReport\", false)\r\n setisEditeSubEventType(false);\r\n ButtonMode = \"SUB\";\r\n }\r\n }\r\n } else {\r\n let obj = {\r\n nEventTypeID: values.EventTypeID,\r\n nEventGroupID: +values.EventGroup,\r\n nEventColor: +values.EventColour,\r\n sEventTypeName: values.EventTypeName,\r\n sEventTypeSubName: values.EventTypeSubName,\r\n sNote: values.Note,\r\n cActive: values.Status,\r\n InactiveRemark: values.InactiveRemark,\r\n cAdvanceReport: values.cAdvanceReport,\r\n nOrder : Number(values.nOrder),\r\n lstSubEventTtype: lstSubEventType,\r\n }\r\n\r\n DialogConfirm(() => {\r\n AxiosPost(sController + \"/SaveEventTypeCreate\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n BackToComponent(\"BackTOUser\");\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n }\r\n };\r\n const onClearFromSumEventType = (formProps) => {\r\n\r\n resetFromData(formProps, \"SubEventTypeID\", null);\r\n resetFromData(formProps, \"SubEventTypeName\", \"\");\r\n resetFromData(formProps, \"SubEventTypeSubName\", \"\");\r\n resetFromData(formProps, \"SubNote\", \"\");\r\n resetFromData(formProps, \"SubStatus\", \"Y\");\r\n setStatusInactive_sub(\"Y\");\r\n resetFromData(formProps, \"subInactiveRemark\", \"\");\r\n resetFromData(formProps, \"subcAdvanceReport\", false);\r\n setisEditeSubEventType(false);\r\n if (lstSubEventType.length < 1) {\r\n setisAddSub(false);\r\n }\r\n };\r\n\r\n const pushSubOrder = () => {\r\n\r\n //console.log(\"lstSubOrder.length\", lstSubOrder.length) \r\n lstSubOrder.push({ label: (lstSubOrder.length + 1) + \"\", value: (lstSubOrder.length + 1) + \"\" });\r\n SetlstSubOrder(lstSubOrder);\r\n };\r\n\r\n const [isEditeSubEventType, setisEditeSubEventType] = useState(false);\r\n const AddSubType = useCallback((props) => {\r\n const { formProps } = props;\r\n return (\r\n isAddSub && \r\n \r\n \r\n \r\n\r\n \r\n \r\n {!isView &&
Add Sub Event Type (Do not use duplicate name)
}\r\n {isView &&
Sub Event Type
}\r\n
\r\n
\r\n {!isView && \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n { setStatusInactive_sub(e) }}\r\n defaultvalue\r\n />\r\n \r\n {\r\n\r\n isStatus_Inactive_sub === \"N\" ?\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n : \r\n }\r\n
\r\n \r\n \r\n \r\n \r\n { ButtonMode = \"SUB\"; formProps.submitForm(formProps); }}>\r\n Confirm Add Sub Event Type\r\n \r\n { onClearFromSumEventType(formProps) }} />\r\n \r\n
}\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n }, [isAddSub, lstSubEventType, isStatus_Inactive_sub, isEditeSubEventType]);\r\n\r\n const ChangeSubOrder = (from, to) => {\r\n console.log(\"from\", from)\r\n console.log(\"to\", to)\r\n console.log(\"lstSubEventType\", lstSubEventType)\r\n if (from != to) {\r\n let qbj = {\r\n sFrom: from,\r\n sTo: to,\r\n lstSubEventType: lstSubEventType\r\n };\r\n AxiosPost(sController + \"/ChangeSubOrder\", qbj, (response) => {\r\n ResultAPI(true, response, null, () => {\r\n setlstSubEventType(response.lstSubEvent);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n }\r\n\r\n const getListOrder = (id) => {\r\n let qbj = {\r\n nEventGroupID: (+id) > 0 ? +id : null,\r\n };\r\n AxiosPost(sController + \"/getListOrder\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n SetlstOrder(response.lstOrder)\r\n setInitialEventType({\r\n ..._InitialDataEventType,\r\n EventGroup: id,\r\n nOrder: response.nOrder + \"\",\r\n });\r\n })\r\n }, () => { }, UnBlockUI, UnBlockUI)\r\n }\r\n\r\n const editeSubEventYpe = (item, formProps) => {\r\n\r\n formProps.setFieldValue(\"SubEventTypeID\", item.nEventTypeID);\r\n formProps.setFieldValue(\"SubEventTypeName\", item.sEventTypeName);\r\n formProps.setFieldValue(\"SubEventTypeSubName\", item.sEventTypeSubName);\r\n formProps.setFieldValue(\"SubNote\", item.sNote);\r\n formProps.setFieldValue(\"SubStatus\", item.cActive);\r\n setStatusInactive_sub(item.cActive);\r\n formProps.setFieldValue(\"subInactiveRemark\", item.InactiveRemark);\r\n formProps.setFieldValue(\"subcAdvanceReport\", item.cAdvanceReport);\r\n //formProps.setFieldValue(\"nSubOrder\", item.nOrder);\r\n\r\n setisEditeSubEventType(true);\r\n };\r\n const SubTypeTeble = useCallback((props) => {\r\n const { formProps } = props;\r\n const deleteSubType = (id) => {\r\n DialogConfirmDelete(() => {\r\n setlstSubEventType(new LINQ(lstSubEventType).Where(w => w.nEventTypeID !== id).ToArray());\r\n Swal.close();\r\n });\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Order \r\n Sub Event Type\r\n Sub Event Type Definition\r\n Status\r\n {!isView && }\r\n \r\n \r\n \r\n {lstSubEventType.length > 0 ? lstSubEventType.map((row, idex) => {\r\n return (\r\n \r\n {!isView ?\r\n \r\n x.value === row.nOrder + \"\")}\r\n isClearable={false}\r\n onChange={values => {\r\n ChangeSubOrder(row.nOrder + \"\", values.value)\r\n }}\r\n disable={isView}\r\n />\r\n \r\n : {row.nOrder}\r\n }\r\n \r\n {row.sEventTypeName}\r\n {row.sNote}\r\n {row.cActive === \"Y\" ? \"Active\" : \"Inactive\"}\r\n {!isView && \r\n editeSubEventYpe(row, formProps)} >\r\n {row.isDelete && deleteSubType(row.nEventTypeID)} />}\r\n \r\n }\r\n \r\n )\r\n })\r\n : }\r\n \r\n \r\n \r\n \r\n )\r\n }, [lstSubEventType]);\r\n\r\n return (\r\n \r\n \r\n {(formProps) => {\r\n return (\r\n
\r\n {\r\n scrollToElementValidate(ButtonMode === \"\" ? \"formEventType\" : \"\");\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n getListOrder(data)\r\n }}\r\n options={lstEventGroup} disable={isEdite} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n { setStatusInactive(e) }}\r\n defaultvalue\r\n disable={isView}\r\n />\r\n \r\n {\r\n isStatus_Inactive === \"N\" ?\r\n \r\n
\r\n \r\n
\r\n
\r\n : \r\n }\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isView && }\r\n {!isView && }\r\n \r\n \r\n {!isView && setisAddSub(true)} >\r\n Sub Event Type\r\n }\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {!isView && { ButtonMode = \"\"; formProps.submitForm() }} />}\r\n \r\n \r\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 Create_EventType;","import React, { Fragment } from 'react'\r\nimport { FnBlock_UI, ParseHtml } from '../SysComponent/SystemComponent';\r\nimport { DialogContent, DialogActions, DialogContentText } from '@material-ui/core';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport Button from '@material-ui/core/Button';\r\nimport { useStyles } from '../form/Table/CustomTable';\r\nexport const DialogComponents = (props) => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const { onClose, open, title, minWidth } = props;\r\n\r\n const handleClose = () => {\r\n onClose(\"\");\r\n };\r\n return (\r\n \r\n {title}\r\n \r\n {props.children}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { Fragment, useEffect, useCallback } from 'react'\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { Link } from 'react-router-dom';\r\nimport { Encrypt, AxiosPost, ResultAPI, FnBlock_UI, DialogConfirmDelete, NoPermission, ResultDeleteAPI, AxiosPostExportFile } from 'components/SysComponent/SystemComponent';\r\nimport {\r\n MuiButtonSearch, MuiButtonEdite, MuiButtonAdd, MuiButtonDelete, MuiIconButtonItem, MuiIconCheckBoxDelete, MuiButtonExport, MuiButtonView\r\n} from '../SysComponent/MaterialComponent'\r\nimport {\r\n useStyles, MuiTableTableToolbar, MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order,\r\n PerPageOptions, StyledTableBody, stableSort, getComparator, MuiRowNoData, HeadCell, defaultPage\r\n} from '../form/Table/CustomTable';\r\nimport {\r\n Paper, Grid, TableContainer, TableSortLabel, Typography, TablePagination\r\n} from '@material-ui/core';\r\nimport SelectNoForm from '../form/SelectNoFormItem';\r\nimport { TextFieldInputFreeText } from '../form/InputNoForm';\r\nimport { DialogSubArea } from '../DialogComponents/DialogSubArea';\r\nimport { DialogComponents } from '../DialogComponents/DialogComponents'\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport BusinessIcon from '@material-ui/icons/Business';\r\nimport LabelImportantIcon from '@material-ui/icons/LabelImportant';\r\nconst dateFormat = require('dateformat');\r\nconst sController = \"ReceiverGroup\";\r\n\r\nconst ReceiverGroup = () => {\r\n\r\n //#region useState\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('desc');\r\n const [orderBy, setOrderBy] = React.useState('dUpdata');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(defaultPage);\r\n const isSelected = (ID: number) => selected.indexOf(ID) !== -1;\r\n const [rows, setRowData] = React.useState([] as any[]);\r\n const [lstEventGroup, setEventGroup] = React.useState([] as any[]);\r\n const [lstCompany, setCompany] = React.useState([] as any[]);\r\n\r\n const [sTxtSearch, setsTxtSearch] = React.useState(\"\");\r\n const [EventGroupID, setEventGroupID] = React.useState(\"\");\r\n const [CompanyID, setCompanyID] = React.useState(\"\");\r\n const [lstCompanyName, setlstCompanyName] = React.useState([] as any[]);\r\n const [lstEvenyTypeName, setlstEvenyTypeName] = React.useState([] as any[]);\r\n const [lstMember, setlstMember] = React.useState([] as any[]);\r\n const [nPermission, setPermission] = React.useState(0);\r\n //#endregion\r\n\r\n //#region on Load\r\n const LoadData = () => {\r\n let qbj = {\r\n SearchText: sTxtSearch,\r\n SearchEventGroupID: (+EventGroupID) > 0 ? +EventGroupID : null,\r\n SearchCompanyID: (+CompanyID) > 0 ? +CompanyID : null,\r\n };\r\n AxiosPost(sController + \"/LoadListData\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n if (response.nPermission === 0) {\r\n NoPermission();\r\n } else {\r\n setPermission(response.nPermission);\r\n setRowData(response.lstData);\r\n setEventGroup(response.lstEventGroup);\r\n setCompany(response.lstCompyne);\r\n setPage(0);\r\n setRowsPerPage(defaultPage);\r\n }\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n // *** Export \r\n const ExportExcel = async () => {\r\n let obj = {\r\n SearchText: sTxtSearch,\r\n SearchEventGroupID: (+EventGroupID) > 0 ? +EventGroupID : null,\r\n SearchCompanyID: (+CompanyID) > 0 ? +CompanyID : null,\r\n lstData : rows,\r\n lstCompyne: lstCompany\r\n };\r\n let fileName = \"5.Receiver_Export\" + \".xlsx\";\r\n await AxiosPostExportFile(sController + \"/ExportExcels\", obj, fileName, () => { }, BlockUI, UnBlockUI);\r\n }\r\n \r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n let qbj = {\r\n SearchText: sTxtSearch,\r\n SearchEventGroupID: (+EventGroupID) > 0 ? +EventGroupID : null,\r\n SearchCompanyID: (+CompanyID) > 0 ? +CompanyID : null,\r\n };\r\n AxiosPost(sController + \"/GetCompanyCSR_List\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setCompany(response);\r\n\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }, [EventGroupID]);\r\n //#endregion\r\n\r\n //#region event\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const handleSelectAllClick = (event: React.ChangeEvent) => {\r\n if (event.target.checked) {\r\n const newSelecteds = rows.map((n) => n.nReceiverGroupID);\r\n setSelected(newSelecteds);\r\n return;\r\n }\r\n setSelected([]);\r\n };\r\n\r\n const handleClick = (event: React.MouseEvent, ID: any) => {\r\n const selectedIndex = selected.indexOf(ID);\r\n let newSelected: number[] = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, ID);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n setSelected(newSelected);\r\n };\r\n const onDelete = () => {\r\n DialogConfirmDelete(() => {\r\n let qbj = { lstReceiverGroupID: selected };\r\n AxiosPost(sController + \"/DeleteReceiverGroup\", qbj, (response) => {\r\n ResultDeleteAPI(false, response, null, () => {\r\n LoadData();\r\n setSelected([]);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n };\r\n\r\n const [open, setOpen] = React.useState({ isShow: false, Mode: 0, Title: \"\" });\r\n\r\n const handleClose = (value: string) => {\r\n setOpen({ ...open, isShow: false, Mode: 0 });\r\n };\r\n\r\n const popupShow = (data, nMode, Title) => {\r\n setOpen({ ...open, isShow: true, Mode: nMode, Title: Title });\r\n if (nMode == 1) {\r\n setlstCompanyName(data);\r\n } else if (nMode == 2) {\r\n setlstEvenyTypeName(data);\r\n } else if (nMode == 3) {\r\n setlstMember(data);\r\n }\r\n };\r\n //#endregion\r\n\r\n //#region set Header\r\n const headCells: HeadCell[] = [\r\n { id: 'No', numeric: true, disablePadding: true, label: 'No.', width: 5, isSort: false },\r\n { id: 'sCompany', numeric: false, disablePadding: true, label: 'Company', width: 10, isSort: false },\r\n { id: 'sEventGroupName', numeric: false, disablePadding: false, label: 'Event Group', width: 12, isSort: false },\r\n { id: 'sReceiverGroupName', numeric: false, disablePadding: true, label: 'Receiver Group Name', width: 30, isSort: true },\r\n { id: 'sEventGroup', numeric: true, disablePadding: false, label: 'Member', width: 10, isSort: false },\r\n { id: 'sUpdateBy', numeric: true, disablePadding: false, label: 'Updated By', width: 20, isSort: true },\r\n { id: 'dUpdata', numeric: true, disablePadding: false, label: 'Last Update', width: 20, isSort: true },\r\n\r\n ];\r\n\r\n const Header = () => {\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n {nPermission === 2 && \r\n 0 && selected.length < rows.length}\r\n checked={rows.length > 0 && selected.length === rows.length}\r\n onChange={handleSelectAllClick}\r\n />\r\n }\r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n \r\n {nPermission === 2 && \r\n \r\n }\r\n \r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n //#region set Body\r\n const BodyData = () => {\r\n return (\r\n \r\n\r\n {rows.length > 0 ? stableSort(rows, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((row, index) => {\r\n const isItemSelected = isSelected(+row.nReceiverGroupID);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n\r\n return (\r\n \r\n {nPermission === 2 && \r\n handleClick(event, row.nReceiverGroupID)}\r\n inputProps={{ 'aria-labelledby': labelId }}\r\n />\r\n }\r\n {index + 1}\r\n \r\n {\r\n (row.lstCompanyName as any).length > 0 &&\r\n { popupShow(row.lstCompanyName, 1, \"Company\") }} />\r\n\r\n }\r\n \r\n {(row.lstGroupName as any).length > 0 && { popupShow(row.lstGroupName, 2, \"Event Group\") }} />}\r\n\r\n {row.sReceiverGroupName}\r\n\r\n {(row.lstMember as any).length > 0 && { popupShow(row.lstMember, 3, \"Member List\") }} />}\r\n {row.sUpdateBy}\r\n {dateFormat(new Date(row.dUpdata), \"dd/mm/yyyy\")}\r\n \r\n {nPermission === 2 && \r\n \r\n }\r\n {nPermission === 1 && \r\n \r\n }\r\n \r\n \r\n );\r\n })\r\n :\r\n nPermission === 2 ? : \r\n }\r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n //#region set Pagination\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n rows.length > 0 ?\r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n )}\r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n Selected ({selected.length}) Row\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n\r\n //#region Fiter\r\n\r\n const Fiter = () => {\r\n\r\n return (\r\n \r\n \r\n \r\n x.value === CompanyID)}\r\n isClearable={true}\r\n onChange={values => { setCompanyID(values != null ? values.value : null) }}\r\n />\r\n\r\n \r\n \r\n x.value === EventGroupID)}\r\n isClearable={true}\r\n onChange={values => { setEventGroupID(values != null ? values.value : null) }}\r\n />\r\n\r\n \r\n\r\n \r\n\r\n { setsTxtSearch(val) }} />\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n
\r\n {rows.length > 0 ?
\r\n {\r\n ExportExcel();\r\n }} /> \r\n
: }\r\n {/* ExportExcel() */}\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n )\r\n };\r\n //#endregion\r\n\r\n const ListCompanyName = useCallback(() => {\r\n return (\r\n \r\n \r\n {lstCompanyName.map((item, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n )\r\n }, [lstCompanyName]);\r\n\r\n const ListEvenyTypeName = useCallback(() => {\r\n return (\r\n \r\n \r\n {lstEvenyTypeName.map((item, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n )\r\n }, [lstEvenyTypeName]);\r\n return (\r\n \r\n \r\n \r\n {open.Mode == 1 && }\r\n {open.Mode == 2 && }\r\n {open.Mode == 3 && }\r\n \r\n \r\n
\r\n \r\n \r\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 ReceiverGroup;\r\n\r\n\r\nconst TableMember = (props) => {\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('desc');\r\n const [orderBy, setOrderBy] = React.useState('dUpdate');\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\r\n const { rows } = props;\r\n\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n //#region set Header\r\n const headCells: HeadCell[] = [\r\n { id: 'No', numeric: true, disablePadding: true, label: 'No.', width: 5, isSort: false },\r\n { id: 'sCompynyName', numeric: false, disablePadding: true, label: 'Company', width: 20, isSort: true },\r\n { id: 'sUserName', numeric: true, disablePadding: false, label: 'Receiver Name', width: 30, isSort: true },\r\n { id: 'sPosition', numeric: true, disablePadding: false, label: 'Position', width: 30, isSort: true },\r\n { id: 'sStatus', numeric: true, disablePadding: false, label: 'Status', width: 10, isSort: true },\r\n\r\n ];\r\n\r\n const Header = () => {\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n return (\r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n //#region set Body\r\n const BodyData = () => {\r\n return (\r\n \r\n\r\n {rows.length > 0 ? stableSort(rows, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((row, index) => {\r\n return (\r\n \r\n {(rowsPerPage * (page)) + (index + 1)}\r\n {row.sCompynyName}\r\n {row.sUserName}\r\n {row.sPosition}\r\n {row.sStatus === \"N\" ? \"Inactive\" : \"Active\"}\r\n \r\n );\r\n })\r\n :\r\n \r\n }\r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n //#region set Pagination\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n rows.length > 0 ?\r\n \r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport FormErrors from \"./formErrors\";\r\nimport { Field } from \"formik\";\r\nimport '../../Styles/Fonts/Kanit/css/fonts.css';\r\nimport {\r\n FormLabel,\r\n RadioGroup,\r\n Radio,\r\n FormControlLabel,\r\n FormControl,\r\n FormHelperText,\r\n withStyles\r\n} from \"@material-ui/core\";\r\n\r\nexport const RadioGroupNoForm = (props) => {\r\n let { options, disable,\r\n label,\r\n values,\r\n name,\r\n defaultValue,\r\n onChangedCallback, ...OtherProps } = props;\r\n\r\n const onChange = (e) => {\r\n if (props.onChange) {\r\n props.onChange(e.target.value);\r\n }\r\n }\r\n return (\r\n \r\n {label}\r\n {\r\n onChange(e);\r\n }}\r\n row\r\n defaultValue={defaultValue}>\r\n {\r\n options.map((option, index) => (\r\n }\r\n label={option.label}\r\n />\r\n ))}\r\n\r\n \r\n \r\n )\r\n}\r\n","import React, { Fragment, useEffect, useState } from 'react'\r\nimport { Formik, Form } from \"formik\";\r\nimport * as yup from 'yup';\r\nimport { Grid, Paper, TableContainer, Checkbox } from '@material-ui/core';\r\nimport {\r\n FnBlock_UI, AxiosPost, ResultAPI, NoPermission, MsgValidate,\r\n MsgValidateMaxLength, scrollToElementValidate, BackToComponent,\r\n Effect, resetFromData, DialogConfirmDelete, resetFromSubmitData, DialogConfirm, Decrypt, SwAlert, AlertTitle\r\n} from '../SysComponent/SystemComponent';\r\nimport RadioFormItem from '../form/RadioFormItem';\r\nimport SelectFormItem from '../form/SelectFormItem';\r\nimport InputFormItem from '../form/InputFormItem';\r\nimport { MuiButtonSave, MuiButtonCancel, MuiButtonAdd, MuiButtonClear, MuiIconButtonDelete, MuiButtonSearch } from '../SysComponent/MaterialComponent';\r\nimport {\r\n useStyles, MuiTableTableToolbar, MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order,\r\n PerPageOptions, StyledTableBody, stableSort, getComparator, MuiRowNoData, HeadCell\r\n} from '../form/Table/CustomTable';\r\nimport { List as LINQ } from 'linqts';\r\nimport Swal, { SweetAlertIcon } from \"sweetalert2\";\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport { RadioGroupNoForm } from '../form/RadioNoForm';\r\nconst sController = \"ReceiverGroup\";\r\nconst Create_ReceiverGroup = () => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const arrStatus = [{ label: \"Active\", value: \"Y\" }, { label: \"Inactive\", value: \"N\" }];\r\n const arrSearchby = [{ label: \"Name/Emp.ID\", value: \"2\" }, { label: \"Position\", value: \"1\" }];\r\n const [lstEventGroup, setlstEventGroup] = useState([] as any[]);\r\n const [lstCompany, setlstCompany] = useState([] as any[]);\r\n const [lstArea, setlstArea] = useState([] as any[]);\r\n\r\n const [lstwithCompany, setlstwithCompany] = useState([] as any[]);\r\n const [Status_Inactive, setStatus_Inactive] = useState({ Hear: \"Y\" });\r\n const [lstMemberSearchby, setlstMemberSearchby] = useState([] as any[]);\r\n const [lstMemberData, setlstMemberData] = useState([] as any[]);\r\n const [lstwithArea, setlstwithArea] = useState([] as any[]);\r\n const [objDataItem, setobjDataItem] = useState({\r\n arrSelectMember: [] as any[],\r\n SelectCompynewithArea: \"\" as any, SelectEventGroupwithArea: \"\" as any\r\n });\r\n const [lstCSRAdminID, setlstCSRAdminID] = useState([] as any[]);\r\n const [isCSRAreaAdmin, setisCSRAreaAdmin] = useState([] as any[]);\r\n const [isView, setView] = useState(false);\r\n //#region validate Form\r\n const _InitialDataReceiverGroup_IN = {\r\n nRecieverGroupID: null,\r\n sRecieverGroupName: \"\",\r\n cActive: \"Y\",\r\n sNoteInActive: \"\",\r\n sMemberCompany: \"\",\r\n sMemberSearchby: \"2\",\r\n sMemberTextSearch: \"\",\r\n sWithAreaEventGroup: \"\",\r\n sWithAreaCompany: \"\",\r\n sWithAreaArea: [],\r\n };\r\n const [_InitialDataReceiverGroup, setInitialReceiverGroup] = useState(_InitialDataReceiverGroup_IN as any);\r\n let ButtonMode = \"\";\r\n\r\n const _validateForm = () => {\r\n if (ButtonMode === \"\") {\r\n return validateReceiverGroup\r\n } else if (ButtonMode === \"Member\") {\r\n return validateMember;\r\n } else if (ButtonMode === \"WithArea\") {\r\n return validateWithArea;\r\n }\r\n }\r\n\r\n const validateReceiverGroup = yup.object().shape({\r\n sRecieverGroupName: yup.string().max(200, MsgValidateMaxLength(\"Receiver Group Name\", 200)).required(MsgValidate.PleaseSpecify + 'Receiver Group Name'),\r\n cActive: yup.string().required(MsgValidate.PleaseSpecify + 'Status'),\r\n sNoteInActive: Status_Inactive.Hear === \"N\" ? yup.string().max(500, MsgValidateMaxLength(\" Note set Inactive\", 500)).required(MsgValidate.PleaseSpecify + ' Note set Inactive') : \"\",\r\n\r\n });\r\n const validateMember = yup.object().shape({\r\n sMemberCompany: yup.string().required(MsgValidate.PleaseSpecify + 'Company'),\r\n sMemberSearchby: yup.string().required(MsgValidate.PleaseSpecify + 'Search by'),\r\n sMemberTextSearch: yup.string().min(3, \"Not less than 3 characters\").required(MsgValidate.PleaseSpecify + ' Search'),\r\n\r\n });\r\n const validateWithArea = yup.object().shape({\r\n sWithAreaEventGroup: yup.string().required(MsgValidate.PleaseSpecify + 'Event Group'),\r\n sWithAreaCompany: yup.string().required(MsgValidate.PleaseSpecify + 'Company'),\r\n sWithAreaArea: yup.array().required(MsgValidate.PleaseSpecify + ' Area'),\r\n\r\n });\r\n //#endregion\r\n\r\n //#region call API\r\n\r\n const LoadData = () => {\r\n let params = new URLSearchParams(window.location.search)\r\n let ID = params.get('ID');\r\n\r\n let obj = {\r\n 'nReceiverGroupID': Decrypt(ID) > 0 ? +Decrypt(ID) : null\r\n };\r\n AxiosPost(sController + \"/LoadCreate\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n if (response.nPermission === 0) {\r\n NoPermission();\r\n } else {\r\n setlstCSRAdminID(response.lstCSRAdminID);\r\n setisCSRAreaAdmin(response.isCSRAdmin);\r\n setView(response.nPermission === 1);\r\n setlstEventGroup(response.lstEventGroup);\r\n setlstCompany(response.lstCompyne);\r\n if (response.EditeData != null) {\r\n let data = response.EditeData;\r\n setInitialReceiverGroup({\r\n ..._InitialDataReceiverGroup,\r\n nRecieverGroupID: data.nReceiverGroupID,\r\n sRecieverGroupName: data.sReceiverGroupName,\r\n cActive: data.cActive,\r\n sNoteInActive: data.sNoteInActive\r\n });\r\n setlstMemberData(data.lstMember);\r\n setlstwithArea(data.lstAreaData);\r\n setStatus_Inactive({ ...Status_Inactive, Hear: data.cActive });\r\n }\r\n }\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n\r\n useEffect(() => {\r\n if (objDataItem.SelectCompynewithArea != \"\" || objDataItem.SelectEventGroupwithArea != \"\") {\r\n let obj = {\r\n 'nCompanyID': +objDataItem.SelectCompynewithArea,\r\n 'nGroupEventID': +objDataItem.SelectEventGroupwithArea\r\n };\r\n AxiosPost(sController + \"/LoadArea\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setlstArea(response)\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n }, [objDataItem.SelectCompynewithArea, objDataItem.SelectEventGroupwithArea]);\r\n\r\n useEffect(() => {\r\n let qbj = {\r\n SearchEventGroupID: +objDataItem.SelectEventGroupwithArea,\r\n };\r\n AxiosPost(sController + \"/GetCompanyCSR\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setlstwithCompany(response);\r\n\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }, [objDataItem.SelectEventGroupwithArea]);\r\n\r\n const SearchMember = (nCompanyID, nSearchby, sSearchText) => {\r\n let obj = {\r\n 'nCompanyID': +nCompanyID,\r\n 'nSearchby': +nSearchby,\r\n 'sSearchText': sSearchText\r\n };\r\n AxiosPost(sController + \"/SearchMember\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setlstMemberSearchby(response)\r\n\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n //#endregion\r\n\r\n const onSaveData = (values, { setFieldValue, setFieldError }) => {\r\n if (ButtonMode === \"Member\") {\r\n SearchMember(values.sMemberCompany, values.sMemberSearchby, values.sMemberTextSearch);\r\n } else if (ButtonMode === \"WithArea\") {\r\n let sEv = new LINQ(lstEventGroup).Where(w => w.value === values.sWithAreaEventGroup).FirstOrDefault();\r\n let qCom = new LINQ(lstwithCompany).Where(w => w.value === values.sWithAreaCompany).FirstOrDefault();\r\n let se = new LINQ(values.sWithAreaArea).ToList();\r\n let arrArea = new LINQ(lstArea).Where(w => se.Contains(w.value)).ToArray();\r\n arrArea.forEach(f => {\r\n if (!new LINQ(lstwithArea).Any(a => a.nAreaID === (+f.value))) {\r\n let obj = {\r\n nEventGroupID: +values.sWithAreaEventGroup,\r\n sEventName: sEv.label,\r\n nCompanyID: +values.sWithAreaCompany,\r\n sCompanyName: qCom.label,\r\n nAreaID: +f.value,\r\n sAreaName: f.label,\r\n nOrdarEventGroup: sEv ? +sEv.nOrder : 0,\r\n nOrdarArea: +f.nOrder,\r\n nOrderCompany: qCom ? +qCom.nOrder : 0\r\n };\r\n lstwithArea.push(obj);\r\n }\r\n });\r\n \r\n var lstwithArea_ =new LINQ(lstwithArea).OrderBy(o=> o.nOrdarEventGroup).ThenBy(t=> t.nOrderCompany).ThenBy(t=> t.nOrdarArea).ToArray()\r\n setlstwithArea([...lstwithArea_]);\r\n // resetFromSubmitData(setFieldValue, setFieldError, \"sWithAreaEventGroup\", '');\r\n // resetFromSubmitData(setFieldValue, setFieldError, \"sWithAreaCompany\", '');\r\n resetFromSubmitData(setFieldValue, setFieldError, \"sWithAreaArea\", '');\r\n // setobjDataItem({ ...objDataItem, SelectEventGroupwithArea: \"\" });\r\n // setobjDataItem({ ...objDataItem, SelectCompynewithArea: \"\" });\r\n // setlstArea([]);\r\n } else {\r\n if (lstwithArea.length > 0) {\r\n let obj = {\r\n nReceiverGroupID: values.nRecieverGroupID,\r\n sReceiverGroupName: values.sRecieverGroupName,\r\n cActive: values.cActive,\r\n sNoteInActive: values.sNoteInActive,\r\n lstMember: lstMemberData,\r\n lstAreaData: lstwithArea,\r\n };\r\n DialogConfirm(() => {\r\n AxiosPost(sController + \"/SaveData\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n BackToComponent(\"BackTOUser\");\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n\r\n } else {\r\n SwAlert.Error(AlertTitle.Warning, \"Please select Relation with Area\", () => { });\r\n }\r\n }\r\n };\r\n\r\n\r\n const FromReceiverGroupHeader = (props) => {\r\n const { formProps } = 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 { setStatus_Inactive({ ...Status_Inactive, Hear: e }) }}\r\n defaultvalue\r\n disable={isView}\r\n />\r\n \r\n {\r\n Status_Inactive.Hear === \"N\" ?\r\n \r\n
\r\n \r\n
\r\n
\r\n : \r\n }\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n };\r\n\r\n const handleSelectAllClick = (event: React.ChangeEvent, mode: number) => {\r\n if (mode == 1) {\r\n if (event.target.checked) {\r\n const newSelecteds = lstMemberSearchby.map((n) => n.sEmpCode);\r\n setobjDataItem({ ...objDataItem, arrSelectMember: newSelecteds });\r\n return;\r\n }\r\n setobjDataItem({ ...objDataItem, arrSelectMember: [] });\r\n }\r\n };\r\n\r\n const handleClick = (event: React.MouseEvent, ID: any, Mode: any) => {\r\n if (Mode === 1) {\r\n const selectedIndex = objDataItem.arrSelectMember.indexOf(ID);\r\n let newSelected: number[] = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(objDataItem.arrSelectMember, ID);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(objDataItem.arrSelectMember.slice(1));\r\n } else if (selectedIndex === objDataItem.arrSelectMember.length - 1) {\r\n newSelected = newSelected.concat(objDataItem.arrSelectMember.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n objDataItem.arrSelectMember.slice(0, selectedIndex),\r\n objDataItem.arrSelectMember.slice(selectedIndex + 1),\r\n );\r\n }\r\n setobjDataItem({ ...objDataItem, arrSelectMember: newSelected });\r\n }\r\n };\r\n\r\n //#region Member\r\n const TableAddMember = () => {\r\n const isSelected = (ID: number) => objDataItem.arrSelectMember.indexOf(ID) !== -1;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0 && objDataItem.arrSelectMember.length < lstMemberSearchby.length}\r\n checked={lstMemberSearchby.length > 0 && objDataItem.arrSelectMember.length === lstMemberSearchby.length}\r\n onChange={(e) => { handleSelectAllClick(e, 1) }}\r\n inputProps={{ 'aria-label': 'select all desserts' }}\r\n />\r\n \r\n Receiver Name\r\n Position\r\n \r\n \r\n \r\n {lstMemberSearchby.length > 0 ? lstMemberSearchby.map((row, idex) => {\r\n const isItemSelected = isSelected(row.sEmpCode);\r\n const labelId = `enhanced-table-checkbox-${idex}`;\r\n return (\r\n \r\n \r\n handleClick(event, row.sEmpCode, 1)}\r\n inputProps={{ 'aria-labelledby': labelId }}\r\n />\r\n \r\n {row.sName}\r\n {row.sPosition}\r\n \r\n )\r\n })\r\n : }\r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n const deleteMember = (id) => {\r\n DialogConfirmDelete(() => {\r\n setlstMemberData(new LINQ(lstMemberData).Where(w => w.sEmpCode !== id).ToArray());\r\n Swal.close();\r\n });\r\n };\r\n const onClearFromMember = (formProps, Mode) => {\r\n if (Mode === 1) {\r\n resetFromData(formProps, \"sMemberCompany\", \"\");\r\n resetFromData(formProps, \"sMemberSearchby\", \"2\");\r\n resetFromData(formProps, \"sMemberTextSearch\", \"\");\r\n setlstMemberSearchby([]);\r\n setobjDataItem({ ...objDataItem, arrSelectMember: [] })\r\n }\r\n };\r\n const TableMemberList = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n No.\r\n Company\r\n Receiver Name\r\n Position\r\n Status\r\n {!isView && }\r\n \r\n \r\n \r\n {lstMemberData.length > 0 ? lstMemberData.map((row, idex) => {\r\n return (\r\n \r\n {idex + 1}\r\n {row.sCompynyName}\r\n {row.sUserName}\r\n {row.sPosition}\r\n \r\n { row.sStatus = e; setlstMemberData([...lstMemberData]) }} />\r\n \r\n {!isView && \r\n deleteMember(row.sEmpCode)} />\r\n }\r\n\r\n \r\n )\r\n })\r\n : }\r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n const SaveMember = (formProps) => {\r\n objDataItem.arrSelectMember.forEach(f => {\r\n if (!new LINQ(lstMemberData).Any(a => a.sEmpCode === f)) {\r\n let qUser = new LINQ(lstMemberSearchby).Where(w => w.sEmpCode === f).FirstOrDefault();\r\n let sCom = new LINQ(lstCompany).Where(w => w.value === formProps.values.sMemberCompany).FirstOrDefault();\r\n if (qUser != null) {\r\n let qbj = {\r\n sEmpCode: f,\r\n nUserID: qUser.nUserID,\r\n sUserName: qUser.sName,\r\n nCompanyID: +formProps.values.sMemberCompany,\r\n sCompynyName: sCom != undefined ? sCom.label : \"\",\r\n sPosition: qUser.sPosition,\r\n sStatus: \"Y\",\r\n nOrderCompany: sCom != undefined ? (+sCom.nOrder) : 0,\r\n };\r\n lstMemberData.push(qbj);\r\n }\r\n }\r\n });\r\n var lstMemberData_ = new LINQ(lstMemberData).OrderBy(o => o.nOrderCompany).ToArray()\r\n setlstMemberData([...lstMemberData_]);\r\n onClearFromMember(formProps, 1);\r\n };\r\n\r\n const FromAddMember = (props) => {\r\n const { formProps } = props;\r\n return (\r\n \r\n \r\n \r\n \r\n {isView &&
Member
}\r\n {!isView && \r\n
Add Member
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { ButtonMode = \"Member\"; formProps.submitForm() }} />\r\n \r\n \r\n \r\n \r\n {objDataItem.arrSelectMember.length > 0 && { SaveMember(formProps) }}>Member}\r\n { onClearFromMember(formProps, 1) }} />\r\n \r\n
}\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n };\r\n //#endregion Member\r\n\r\n //#region with Area\r\n const onClearFromWithArea = (formProps, Mode) => {\r\n if (Mode === 1) {\r\n resetFromData(formProps, \"sWithAreaEventGroup\", \"\");\r\n resetFromData(formProps, \"sWithAreaCompany\", \"\");\r\n resetFromData(formProps, \"EventType\", \"\");\r\n setobjDataItem({ ...objDataItem, SelectEventGroupwithArea: \"\" });\r\n setobjDataItem({ ...objDataItem, SelectCompynewithArea: \"\" });\r\n setlstArea([]);\r\n }\r\n };\r\n\r\n const deleteWithArea = (id) => {\r\n DialogConfirmDelete(() => {\r\n setlstwithArea(new LINQ(lstwithArea).Where(w => w.nAreaID !== id).ToArray());\r\n Swal.close();\r\n });\r\n };\r\n const TableWithArea = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n No.\r\n Event Group\r\n Company\r\n Area Name\r\n {!isView && }\r\n \r\n \r\n \r\n {lstwithArea.length > 0 ? lstwithArea.map((row, idex) => {\r\n return (\r\n \r\n {idex + 1}\r\n {row.sEventName}\r\n {row.sCompanyName}\r\n {row.sAreaName}\r\n\r\n {!isView && \r\n\r\n {isCSRAreaAdmin ? lstCSRAdminID.filter(f => f === row.nAreaID).length > 0 &&\r\n deleteWithArea(row.nAreaID)} />\r\n : deleteWithArea(row.nAreaID)} />\r\n }\r\n \r\n }\r\n\r\n \r\n )\r\n })\r\n : }\r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n // const GetAreaAreaoptions = () => {\r\n // let qAr = new LINQ(lstwithArea).Select(s => s.nAreaID).ToList();\r\n // if (qAr != undefined && qAr != null && qAr.Count() > 0) {\r\n // return new LINQ(lstArea).Where(w => !qAr.Contains(w.value)).ToArray();\r\n // } else {\r\n // return lstArea;\r\n // }\r\n // };\r\n const FromwithArea = (props) => {\r\n const { formProps } = props;\r\n return (\r\n \r\n \r\n \r\n \r\n
Relation with Area
\r\n {!isView &&\r\n \r\n
\r\n \r\n \r\n { setobjDataItem({ ...objDataItem, SelectEventGroupwithArea: data }) }} />\r\n \r\n \r\n {\r\n formProps.values.sWithAreaArea = [];\r\n setobjDataItem({ ...objDataItem, SelectCompynewithArea: data })\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n { ButtonMode = \"WithArea\"; formProps.submitForm() }}>Area\r\n { onClearFromWithArea(formProps, 1) }} />\r\n \r\n \r\n
}\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n };\r\n //#endregion\r\n\r\n return (\r\n \r\n \r\n {(formProps) => {\r\n return (\r\n
\r\n {\r\n scrollToElementValidate(ButtonMode === \"\" ? \"formReceiverGroup\" : \"\");\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isView && { ButtonMode = \"\"; formProps.submitForm() }} />}\r\n \r\n \r\n \r\n\r\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 Create_ReceiverGroup;","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport FormErrors from \"./formErrors\";\r\nimport { FastField } from \"formik\";\r\nimport DateFnsUtils from \"@material-ui/pickers/adapter/date-fns\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport {\r\n TimePicker,\r\n MobileDateRangePicker,\r\n DateRangeDelimiter,\r\n LocalizationProvider,\r\n MobileDateTimePicker,\r\n DatePicker, MobileDatePicker, MobileTimePicker,\r\n} from \"@material-ui/pickers\";\r\nimport DateRangeOutlinedIcon from '@material-ui/icons/DateRangeOutlined';\r\nimport InputAdornment from '@material-ui/core/InputAdornment/InputAdornment';\r\nimport { getLanguage } from \"../../i18n\";\r\nimport AccessTimeIcon from '@material-ui/icons/AccessTime';\r\nimport { withStyles, Theme, createStyles, makeStyles } from '@material-ui/core/styles';\r\nimport { Tune } from \"@material-ui/icons\";\r\nconst StyledInput = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n width: \"100%\",\r\n top: \"4px\",\r\n\r\n // '& .MuiOutlinedInput-root': {\r\n // '& fieldset': {\r\n // borderRadius: \"0px\",\r\n // },\r\n // fontSize: \"14px\",\r\n // color: \"rgba(0, 0, 0, 0.87)\"\r\n // },\r\n // background: theme.palette.common.white,\r\n // \"& .MuiInputBase-root.Mui-disabled\": {\r\n // background: theme.palette.action.hover,\r\n // },\r\n \"& .MuiOutlinedInput-inputMarginDense\": {\r\n // paddingTop: \"8px\",\r\n // paddingBottom: \"8px\"\r\n minHeight: \"24px\",\r\n },\r\n \"& .MuiInputLabel-outlined\": {\r\n top: 1,\r\n }\r\n // width: \"100%\"\r\n }\r\n }),\r\n)(TextField);\r\n\r\nexport const TimePickerNoForm = (props) => {\r\n const {\r\n label,\r\n name,\r\n hint,\r\n placeholder,\r\n autoFocus,\r\n autoComplete,\r\n inputProps,\r\n msgError,\r\n showTime,\r\n handleDateChange,\r\n defaultValue,\r\n disable,\r\n onValidate,\r\n defaultValidate\r\n } = props;\r\n const format = showTime ? \"HH:mm\" : \"HH:mm\";\r\n const [selectDate, setselectDate] = React.useState(defaultValue || null); //this.value() || [null, null];\r\n\r\n const [isVlidate, setVlidate] = React.useState(defaultValidate === false || false);\r\n const [sMsgError, setMsgError] = React.useState(msgError || defaultValidate === false?\"Please Specify Time\":\"\");\r\n const handleChangeValue = (date) => {\r\n setselectDate(date);\r\n if (Object.prototype.toString.call(date) === \"[object Date]\") {\r\n if (isNaN(date.getTime())) {\r\n if (onValidate != undefined) onValidate(false);\r\n setVlidate(true);\r\n setMsgError(\"Invalid Time\");\r\n } else {\r\n if (date != null) {\r\n if (onValidate != undefined) onValidate(true);\r\n if (handleDateChange != undefined) handleDateChange(date);\r\n setVlidate(false);\r\n setMsgError(\"\");\r\n } else {\r\n if (onValidate != undefined) onValidate(false);\r\n setVlidate(true);\r\n setMsgError(\"Invalid Time\");\r\n }\r\n }\r\n } else {\r\n if (onValidate != undefined) onValidate(false);\r\n if (handleDateChange != undefined) handleDateChange(date);\r\n setVlidate(true);\r\n setMsgError(\"Please Specify Time\");\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n {\r\n handleChangeValue(value);\r\n }}\r\n {...inputProps}\r\n autoOk\r\n renderInput={(startProps, endProps) => {\r\n return (\r\n \r\n \r\n

{sMsgError}

\r\n
\r\n );\r\n }}\r\n />\r\n
\r\n\r\n \r\n );\r\n}\r\nexport default TimePickerNoForm;","import React, { Fragment, useEffect, useState, useRef, useCallback } from 'react';\r\nimport { List as LINQ } from 'linqts';\r\nimport {\r\n MuiButtonSearch, MuiButtonEdite, MuiButtonSave, MuiButtonResend, EventColorCompronent, MuiIconButtonItem\r\n , MuiIconButtonMessage, MuiButtonCancel\r\n} from '../../SysComponent/MaterialComponent'\r\nimport { Grid, TableSortLabel, TableContainer, TablePagination } from '@material-ui/core';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport DatePickerFormItem from \"../../form/DatePickerFormItem\";\r\nimport DateRangeOutlinedIcon from '@material-ui/icons/DateRangeOutlined';\r\nimport InputAdornment from '@material-ui/core/InputAdornment/InputAdornment';\r\nimport GroupIcon from '@material-ui/icons/Group';\r\nimport { SwAlert, AxiosPost, ResultAPI, FnBlock_UI, DialogConfirm, NoPermission, AlertTitle, MsgValidate, Effect, scrollToElementValidate } from 'components/SysComponent/SystemComponent';\r\nimport { withStyles, Theme, createStyles, makeStyles } from '@material-ui/core/styles';\r\nimport Badge from '@material-ui/core/Badge';\r\nimport { DialogComponents } from '../../DialogComponents/DialogComponents'\r\nimport { Formik, Form } from \"formik\";\r\nimport * as yup from 'yup';\r\nimport {\r\n MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order, StyledTableBody, MuiRowNoData, defaultPage, HeadCell, useStyles, stableSort,\r\n getComparator, PerPageOptions, MuiTableTableToolbar\r\n} from '../../form/Table/CustomTable';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport SelectFormItem from '../../form/SelectFormItem';\r\nimport LabelImportantIcon from '@material-ui/icons/LabelImportant';\r\nimport InputFormItem from '../../form/InputFormItem';\r\nconst dateFormat = require('dateformat');\r\nconst sController = \"LogMailMonitoring\";\r\nexport const LogMonitoring = (props) => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n var date = new Date();\r\n date.setDate(date.getDate() - 1);\r\n\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('sReceiverName');\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(defaultPage);\r\n const [rows, setRowData] = React.useState([] as any[]);\r\n const [conData, setconData] = React.useState({ sentDate: null, countSentAll: \"\", countSent: \"\", countNot: \"\", EventDate: null });\r\n const [lstGroupInUser, setlstGroupInUser] = React.useState([] as any[]);\r\n const [lstCompany, setlstCompany] = React.useState([] as any[]);\r\n const [lstReceiverGroup, setlstReceiverGroup] = React.useState([] as any[]);\r\n const arrStatus = [{ label: \"All\", value: \"A\" }, { label: \"Completed\", value: \"Y\" }, { label: \"Fail\", value: \"N\" }];\r\n const [isShowResent, setisShowResent] = React.useState(false);\r\n\r\n\r\n const [inFromLogEventReport, setFromEventReport] = useState({\r\n EventDate: date as Date,\r\n Company: [] as any[],\r\n ReceiverGroup: [] as any[],\r\n Status: \"A\",\r\n RecieverName: \"\"\r\n\r\n });\r\n const validateOperation = yup.object().shape({\r\n EventDate: yup.date().typeError(MsgValidate.PleaseSpecify + \"Event Date\").required(MsgValidate.PleaseSpecify + 'Event Date'),\r\n });\r\n\r\n useEffect(() => {\r\n LoadData(\"0\", date);\r\n }, []);\r\n\r\n const onLoadData = (values) => {\r\n LoadData(\"1\", values.EventDate, values);\r\n }\r\n\r\n const LoadData = (Mode_, EventDate_, value?) => {\r\n let obj = {\r\n 'sMode': Mode_,\r\n 'sEventDate': dateFormat(EventDate_, \"dd/mm/yyyy\"),\r\n 'sReceiverName': value != null ? value.RecieverName : \"\",\r\n 'lstGroupID': value != null ? new LINQ(value.ReceiverGroup).Select(s => (+s)).ToArray() : null,\r\n 'lstCompanyID': value != null ? new LINQ(value.Company).Select(s => (+s)).ToArray() : null,\r\n 'sStatus': value != null ? value.Status === \"A\" ? \"\" : value.Status : \"\"\r\n };\r\n\r\n AxiosPost(sController + \"/onLoadData\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n if (Mode_ === \"0\") {\r\n setlstCompany(response.lstCompanySelect);\r\n setlstReceiverGroup(response.lstGroupSelect)\r\n }\r\n setconData({\r\n ...conData, sentDate: response.dSentDate,\r\n countSentAll: response.nCountSentAll, countSent: response.nCountSent,\r\n countNot: response.nCountNotSent, EventDate: response.dEventDate,\r\n });\r\n setisShowResent(response.isResent);\r\n setRowData(response.lstData);\r\n setPage(0);\r\n setRowsPerPage(defaultPage);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n\r\n\r\n //#region Header\r\n const headCells: HeadCell[] = [\r\n { id: 'No', numeric: true, disablePadding: true, label: 'No.', width: 5, isSort: false },\r\n { id: 'dEventDate', numeric: false, disablePadding: true, label: 'Event Date', width: 10, isSort: false },\r\n { id: 'sReceiverName', numeric: false, disablePadding: false, label: 'Receiver', width: 20, isSort: true },\r\n { id: 'sCompanyName', numeric: false, disablePadding: false, label: 'Company', width: 10, isSort: true },\r\n { id: 'nReceiverCGrou', numeric: true, disablePadding: false, label: 'Receiver Group', width: 15, isSort: false },\r\n { id: 'sStatusName', numeric: true, disablePadding: false, label: 'Status', width: 5, isSort: true },\r\n { id: 'sResetByName', numeric: true, disablePadding: false, label: 'Resent Mail By', width: 20, isSort: true },\r\n { id: 'dLastDate', numeric: true, disablePadding: false, label: 'Last Sent Mail', width: 15, isSort: true }\r\n\r\n ];\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const Header = () => {\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n return (\r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n \r\n \r\n )\r\n };\r\n\r\n const ListEvenyTypeName = useCallback(() => {\r\n return (\r\n \r\n \r\n {new LINQ(lstGroupInUser).OrderBy(w => w.sGroupNate).ToArray().map((item, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n )\r\n }, [lstGroupInUser]);\r\n\r\n const [open, setOpen] = React.useState({ isShow: false, Mode: 0, Title: \"\" });\r\n\r\n const handleClose = (value: string) => {\r\n setOpen({ ...open, isShow: false, Mode: 0 });\r\n };\r\n\r\n const popupShow = (data, nMode, Title) => {\r\n setlstGroupInUser(data);\r\n setOpen({ ...open, isShow: true, Mode: nMode, Title: Title });\r\n\r\n };\r\n\r\n const BodyData = () => {\r\n return (\r\n \r\n\r\n {rows.length > 0 ? stableSort(rows, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((row, index) => {\r\n return (\r\n \r\n {(rowsPerPage * (page)) + (index + 1)}\r\n {dateFormat(row.dEventDate, \"dd/mm/yyyy\")}\r\n {row.sReceiverName}\r\n {row.sCompanyName}\r\n {\r\n (row.lstReceiverGroup as any).length > 0 &&\r\n { popupShow(row.lstReceiverGroup, 1, \"Receiver Group\") }} />\r\n }\r\n {row.sStatusName}\r\n {row.sResetByName}\r\n {row.dLastDate != null ? dateFormat(row.dLastDate, \"dd/mm/yyyy HH:MM\") : \"\"}\r\n\r\n \r\n );\r\n })\r\n :\r\n \r\n }\r\n \r\n )\r\n };\r\n\r\n\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n rows.length > 0 ?\r\n \r\n : \r\n )\r\n };\r\n\r\n //#endregion\r\n\r\n const onResentMail_ = () => {\r\n let obj = {\r\n 'sMode': \"1\",\r\n 'sEventDate': conData.EventDate != null ? dateFormat(conData.EventDate, \"dd/mm/yyyy\") : \"null\",\r\n 'sReceiverName': null,\r\n 'lstGroupID': null,\r\n 'lstCompanyID': null,\r\n 'sStatus': \"N\"\r\n };\r\n DialogConfirm(() => {\r\n AxiosPost(sController + \"/onResentMail\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setFromEventReport({ ...inFromLogEventReport, Company: [], EventDate: conData.EventDate || date, ReceiverGroup: [], RecieverName: \"\", Status: \"A\" })\r\n LoadData(\"1\", conData.EventDate);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }, () => { }, \"Do you want to resent mail?\");\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(formProps) => {\r\n return (\r\n
\r\n {\r\n scrollToElementValidate(\"formLogMail\");\r\n }}\r\n />\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n }\r\n \r\n
\r\n \r\n \r\n \r\n

วันที่ส่ง E-Mail {conData.sentDate != null ? dateFormat(conData.sentDate, \"dd/mm/yyyy\") : \"\"}

\r\n

จำนวนที่ต้องส่งทั้งหมด {conData.countSentAll} คน สำเร็จ {conData.countSent} คน ไม่สำเร็จ {conData.countNot} คน

\r\n
\r\n {isShowResent && \r\n { onResentMail_() }}>Resend All\r\n
*Resend All จะส่งเฉพาะ User ที่ไม่ได้รับ Email\r\n
\r\n }\r\n \r\n \r\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 LogMonitoring; ","import React, { Fragment, useEffect, useState, useRef, useCallback } from 'react';\r\nimport { List as LINQ } from 'linqts';\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport {\r\n MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order, StyledTableBody, MuiRowNoData, defaultPage, HeadCell, useStyles, stableSort,\r\n getComparator, PerPageOptions, MuiTableTableToolbar\r\n} from '../form/Table/CustomTable';\r\nimport { Grid, TableSortLabel, TableContainer, TablePagination, IconButton } from '@material-ui/core';\r\nimport {\r\n MuiButtonSearch, MuiButtonEdite, MuiButtonSave, MuiButtonResend, EventColorCompronent, MuiIconButtonItem\r\n , MuiIconButtonMessage, MuiButtonCancel\r\n} from '../SysComponent/MaterialComponent'\r\nimport SelectNoForm from '../form/SelectNoFormItem';\r\nimport { TextFieldInputFreeText } from '../form/InputNoForm';\r\nimport { DatePickerNoForm } from '../form/DatePickerNoForm';\r\nimport GroupIcon from '@material-ui/icons/Group';\r\nimport { SwAlert, AxiosPost, ResultAPI, FnBlock_UI, DialogConfirm, NoPermission, AlertTitle, MsgValidate } from 'components/SysComponent/SystemComponent';\r\nimport { withStyles, Theme, createStyles, makeStyles } from '@material-ui/core/styles';\r\nimport Badge from '@material-ui/core/Badge';\r\nimport { DialogComponents } from '../DialogComponents/DialogComponents'\r\nimport TimePickerNoForm from '../form/TimePickerNoForm'\r\nimport LogMonitoring from './MailMonitoringComponents/LogMonitoring'\r\nconst sController = \"MailSetupMonitoring\";\r\nconst dateFormat = require('dateformat');\r\nconst MailSetupMonitoring = () => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const [expanded, setexpanded] = useState(2);\r\n const handleChange_brac = (panel) => (event, newExpanded) => {\r\n setexpanded(newExpanded ? panel : 0);\r\n };\r\n const [lstMailSutup, setLstMailSutup] = useState([] as any[]);\r\n const [isEdite, setEdite] = useState(false);\r\n const [nPermission, setPermission] = React.useState(0);\r\n\r\n const LoadData = () => {\r\n let obj = {\r\n 'nMode': 1,\r\n };\r\n AxiosPost(sController + \"/onLoad\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n if (response.nPermission === 0) {\r\n NoPermission();\r\n } else {\r\n setPermission(response.nPermission);\r\n setLstMailSutup(response.lstMailSetup)\r\n }\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n const saveSutupMail = () => {\r\n let Check = new LINQ(lstMailSutup).Where(w => (w.nEventType === 4 ? w.isValidateEventTime === false : false) || w.isValidateFinalTime === false).ToList();\r\n if (Check.Count() === 0) {\r\n let obj = {\r\n lstData: lstMailSutup\r\n }\r\n DialogConfirm(() => {\r\n AxiosPost(sController + \"/SaveData\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n LoadData();\r\n setEdite(false);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n } else {\r\n // SwAlert.Error(AlertTitle.Error, MsgValidate.PleaseSpecify + \"Event time And Final time for Report\", () => { });\r\n }\r\n\r\n };\r\n\r\n const SetupMail = useCallback(() => {\r\n return (\r\n \r\n }\r\n aria-label=\"Expand\"\r\n aria-controls=\"additional-actions1-content\"\r\n id=\"additional-actions1-header\"\r\n >\r\n
กำหนดเงื่อนไขเวลาการส่งอีเมล รายงานเหตุการณ์ประจำวัน
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Event Group\r\n Status\r\n Abnormal Start Time\r\n Final Reporting Time\r\n Definition\r\n Updated By\r\n Last Update\r\n \r\n \r\n \r\n {lstMailSutup.map((item, index) => (\r\n \r\n {item.sEventGroupName}\r\n \r\n \r\n {item.nEventType === 4 &&\r\n \r\n {\r\n e != null ? item.sEventTime = dateFormat(e, \"HH:MM\") : item.sEventTime = \"\"\r\n }}\r\n onValidate={(e) => {\r\n item.isValidateEventTime = e\r\n }}\r\n disable={isEdite === false}\r\n defaultValidate={item.isValidateEventTime}\r\n />\r\n \r\n }\r\n \r\n \r\n \r\n {\r\n e != null ? item.sFinalTime = dateFormat(e, \"HH:MM\") : item.sFinalTime = \"\"\r\n }}\r\n onValidate={(e) => {\r\n item.isValidateFinalTime = e\r\n }}\r\n disable={isEdite === false}\r\n defaultValidate={item.isValidateFinalTime} />\r\n \r\n \r\n \r\n { item.sNote = val }}\r\n disabled={isEdite === false} />\r\n \r\n {item.UpdateBy}\r\n {dateFormat(item.dUpdate, \"dd/mm/yyyy HH:MM\")}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n หมายเหตุ : กรณีที่ต้องการเปลี่ยนแปลงเวลาในการส่งอีเมล Daily Report ให้ติดต่อไปที่ PTT Digital\r\n \r\n \r\n {nPermission === 2 &&\r\n !isEdite && { setEdite(true) }}\r\n style={{ \"height\": \"42px\", \"margin-top\": \"6px\" }}\r\n size=\"medium\" />\r\n\r\n }\r\n {isEdite === true && { saveSutupMail() }} />}\r\n {isEdite === true && {\r\n setEdite(false);\r\n LoadData();\r\n }} />}\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n }, [lstMailSutup, isEdite, expanded]);\r\n\r\n return (\r\n \r\n \r\n \r\n }\r\n aria-label=\"Expand\"\r\n aria-controls=\"additional-actions1-content\"\r\n id=\"additional-actions1-header\"\r\n >\r\n
ติดตามสถานะการส่งอีเมล (Mail Monitoring)
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\nexport default MailSetupMonitoring;","import React, { Fragment, useEffect } from 'react'\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { Link } from 'react-router-dom';\r\nimport { Encrypt, AxiosPost, ResultAPI, FnBlock_UI, DialogConfirmDelete, NoPermission, ResultDeleteAPI, AxiosPostExportFile } from 'components/SysComponent/SystemComponent';\r\nimport { MuiButtonSearch, MuiButtonEdite, MuiButtonAdd, MuiButtonDelete, MuiIconCheckBoxDelete, MuiButtonExport, MuiButtonView } from '../SysComponent/MaterialComponent'\r\nimport {\r\n useStyles, MuiTableTableToolbar, MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order,\r\n PerPageOptions, StyledTableBody, stableSort, getComparator, MuiRowNoData, HeadCell, defaultPage\r\n} from '../form/Table/CustomTable';\r\nimport { Paper, Grid, TableContainer, TableSortLabel, Typography, TablePagination } from '@material-ui/core';\r\nimport { List as LINQ } from 'linqts';\r\nimport SelectNoForm from '../form/SelectNoFormItem';\r\nimport { TextFieldInputFreeText } from '../form/InputNoForm'\r\nconst dateFormat = require('dateformat');\r\nconst sController = \"UserPermission\";\r\nconst UserPermission = () => {\r\n\r\n //#region useState\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('desc');\r\n const [orderBy, setOrderBy] = React.useState('dUpdateDate');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(defaultPage);\r\n const isSelected = (ID: number) => selected.indexOf(ID) !== -1;\r\n const [rows, setRowData] = React.useState([] as any[]);\r\n const [lstCompany, setCompany] = React.useState([] as any[]);\r\n const [lstGroupUser, setGroupUser] = React.useState([] as any[]);\r\n const [sTxtSearch, setsTxtSearch] = React.useState(\"\");\r\n const [nCompany, setCompanySearch] = React.useState(null as any);\r\n const [nGroupUser, setGroupUserSearch] = React.useState(null);\r\n const [nPermission, setPermission] = React.useState(0);\r\n //#endregion\r\n\r\n //#region on Load\r\n const LoadData = () => {\r\n let qbj = {\r\n sTxtSearch: sTxtSearch,\r\n nCompany: nCompany,\r\n nGroupUser: nGroupUser\r\n };\r\n AxiosPost(sController + \"/LoadUserListData\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n if (response.nPermission === 0) {\r\n NoPermission();\r\n } else {\r\n setPermission(response.nPermission);\r\n setRowData(response.lstUser || []);\r\n setGroupUser(new LINQ(response.lstGroupUser).Select(s => ({ label: s.sGroupName, value: s.nGroupID })).ToArray());\r\n setCompany(new LINQ(response.lstCompany).Select(s => ({ label: s.nCompanyName, value: s.nCompanyID })).ToArray());\r\n setPage(0);\r\n setRowsPerPage(defaultPage);\r\n }\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n\r\n const ExportExcel = async () => {\r\n let obj = {\r\n sTxtSearch: sTxtSearch,\r\n nCompany: nCompany,\r\n nGroupUser: nGroupUser\r\n };\r\n // let fileName = \"UserPermision_\" + dateFormat(new Date(), \"ddMMyyyyHHmm\") + \".xlsx\";\r\n let fileName = \"4.User Permision_Export_\" + dateFormat(new Date(), \"ddMMyyyyHHmm\") + \".xlsx\";\r\n await AxiosPostExportFile(sController + \"/ExportExcel\", obj, fileName, () => { }, BlockUI, UnBlockUI);\r\n }\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n //#endregion\r\n\r\n //#region event\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const handleSelectAllClick = (event: React.ChangeEvent) => {\r\n if (event.target.checked) {\r\n const newSelecteds = rows.map((n) => n.nUserID);\r\n setSelected(newSelecteds);\r\n return;\r\n }\r\n setSelected([]);\r\n };\r\n\r\n const handleClick = (event: React.MouseEvent, ID: any) => {\r\n const selectedIndex = selected.indexOf(ID);\r\n let newSelected: number[] = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, ID);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n setSelected(newSelected);\r\n };\r\n const onDeleteFinish = (respond) => {\r\n //console.log(\"res\", respond);\r\n if (respond.sStatus == \"Error\")\r\n LoadData();\r\n else {\r\n LoadData();\r\n setSelected([]);\r\n }\r\n };\r\n\r\n const onDelete = () => {\r\n //DialogConfirmDelete(() => {\r\n // AxiosPost(sController + \"/DeleteUserListData\", selected, (response) => {\r\n // ResultDeleteAPI(false, response, null, () => {\r\n // LoadData();\r\n // setSelected([]);\r\n // })\r\n // }, () => { }, BlockUI, UnBlockUI)\r\n //});\r\n\r\n DialogConfirmDelete(() => {\r\n AxiosPost(sController + \"/DeleteUserFromList\", selected, (response) => {\r\n ResultDeleteAPI(false, response, response.sStatus == \"Success\" ? null : response.sMsg, onDeleteFinish(response), () => {\r\n \r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n };\r\n //#endregion\r\n\r\n //#region set Header\r\n const headCells: HeadCell[] = [\r\n { id: 'No', numeric: true, disablePadding: true, label: 'No.', width: 5, isSort: false },\r\n { id: 'sCompany', numeric: false, disablePadding: false, label: 'Company', width: 10, isSort: true },\r\n { id: 'sName', numeric: false, disablePadding: true, label: 'Name', width: 30, isSort: true },\r\n { id: 'sGrupUser', numeric: true, disablePadding: false, label: 'Group User', width: 25, isSort: true },\r\n { id: 'sUpdateBy', numeric: true, disablePadding: false, label: 'Updated By', width: 25, isSort: true },\r\n { id: 'dUpdateDate', numeric: true, disablePadding: false, label: 'Last Update', width: 15, isSort: true },\r\n\r\n ];\r\n\r\n const Header = () => {\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n {nPermission === 2 &&\r\n \r\n 0 && selected.length < rows.length}\r\n checked={rows.length > 0 && selected.length === rows.length}\r\n onChange={handleSelectAllClick}\r\n />\r\n \r\n }\r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n \r\n {nPermission === 2 && }\r\n\r\n \r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n //#region set Body\r\n const BodyData = () => {\r\n return (\r\n \r\n\r\n {rows.length > 0 ? stableSort(rows, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((row, index) => {\r\n const isItemSelected = isSelected(+row.nUserID);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n\r\n return (\r\n \r\n {nPermission === 2 && \r\n handleClick(event, row.nUserID)}\r\n inputProps={{ 'aria-labelledby': labelId }}\r\n />\r\n }\r\n {(rowsPerPage * (page)) + (index + 1)}\r\n {row.sCompany}\r\n {row.sName}\r\n {row.sGrupUser}\r\n {row.sUpdateBy}\r\n \r\n {new Intl.DateTimeFormat(\"en-GB\", {\r\n year: \"numeric\",\r\n month: \"numeric\",\r\n day: \"2-digit\",\r\n }).format(new Date(row.dUpdateDate))}\r\n \r\n \r\n {nPermission === 2 && row.isEdite && }\r\n {nPermission === 1 && }\r\n \r\n \r\n );\r\n })\r\n :\r\n nPermission === 2 ? : \r\n }\r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n //#region set Pagination \r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n rows.length > 0 ?\r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n )}\r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n Selected ({selected.length}) Row\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n\r\n //#region Fiter\r\n\r\n const Fiter = () => {\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n { setsTxtSearch(val) }} />\r\n \r\n \r\n x.value === nCompany)}\r\n isClearable={true}\r\n onChange={values => { setCompanySearch(values != null ? values.value : null) }} />\r\n \r\n \r\n x.value === nGroupUser)}\r\n isClearable={true}\r\n onChange={values => { setGroupUserSearch(values != null ? values.value : null) }}\r\n />\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n {rows.length > 0 ?
\r\n { ExportExcel() }} />\r\n
: }\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n )\r\n };\r\n //\r\n //#endregion\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\nexport default UserPermission;","import React, { Fragment, useEffect, useState } from 'react';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { Link } from 'react-router-dom';\r\nimport { Formik, Form } from \"formik\";\r\nimport * as yup from 'yup';\r\nimport {\r\n Encrypt, AxiosPost, ResultAPI, FnBlock_UI, DialogConfirmDelete, NoPermission, AxiosPostExportFile\r\n , MsgValidate, MsgValidateMaxLength, Effect, scrollToElementValidate, DialogConfirm\r\n} from '../SysComponent/SystemComponent';\r\n\r\nimport { MuiButtonSave, MuiButtonCancel, MuiButtonEdite, MuiButtonAdd, MuiButtonDelete, MuiIconButtonItem, MuiIconCheckBoxDelete, MuiButtonExport, MuiButtonView } from '../SysComponent/MaterialComponent'\r\nimport {\r\n useStyles, MuiTableTableToolbar, MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order,\r\n PerPageOptions, StyledTableBody, stableSort, getComparator, MuiRowNoData, HeadCell, defaultPage\r\n} from '../form/Table/CustomTable';\r\nimport { Paper, Grid, TableContainer, TableSortLabel, Typography, TablePagination } from '@material-ui/core';\r\nimport RadioFormItem from '../form/RadioFormItem';\r\n// import { List as LINQ } from 'linqts';\r\nimport SelectNoForm from '../form/SelectNoFormItem';\r\nimport SelectFormItem from '../form/SelectFormItem';\r\nimport InputFormItem from '../form/InputFormItem';\r\nimport {\r\n FormLabel,\r\n} from \"@material-ui/core\";\r\nimport axios from 'axios'\r\nconst sController = \"NotificationTime\";\r\nconst dateFormat = require('dateformat');\r\nconst Company = () => {\r\n\r\n //#region useState\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('nOrder');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(defaultPage);\r\n const isSelected = (ID: number) => selected.indexOf(ID) !== -1;\r\n const [lstData, setlstData] = React.useState([] as any[]);\r\n const [lstEventGroup, setlstEventGroup] = React.useState([] as any[]);\r\n const [lstStatus, setlstStatus] = React.useState([] as any[]);\r\n const [nPermission, setPermission] = React.useState(0);\r\n const [isView, setisView] = React.useState(false);\r\n const [sMode, setsMode] = React.useState(\"Add\");\r\n const [nID, setnID] = React.useState(0);\r\n\r\n const _InitialDataEventType_IN = {\r\n FormStatus: \"Y\",\r\n NotiTime: \"\",\r\n EventGroup: \"\",\r\n };\r\n const _validateForm = () => {\r\n return validate\r\n }\r\n const [_InitialDataEventType, setInitialEventType] = useState(_InitialDataEventType_IN as any);\r\n //#endregion\r\n\r\n const validate = yup.object().shape({\r\n NotiTime: yup.string().required(MsgValidate.PleaseSpecify + 'Notification Time'),\r\n EventGroup: yup.string().required(MsgValidate.PleaseSpecify + 'Event Group'),\r\n FormStatus: yup.string().required(MsgValidate.PleaseSpecify + 'Status'),\r\n });\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n //#region on Load\r\n const LoadData = () => {\r\n let qbj = {\r\n \r\n };\r\n AxiosPost(sController + \"/LoadDataList\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n\r\n if (response.n_Permission === 1)\r\n setisView(true);\r\n if (response.n_Permission === 0) {\r\n NoPermission();\r\n } else {\r\n setPermission(response.n_Permission);\r\n setPage(0);\r\n setRowsPerPage(defaultPage);\r\n setlstData(response.lstData);\r\n setlstEventGroup(response.lstEventGroup)\r\n setlstStatus(response.lstStatus)\r\n setInitialEventType({\r\n ..._InitialDataEventType,\r\n FormStatus: \"Y\",\r\n NotiTime: \"\",\r\n EventGroup: \"\",\r\n });\r\n setsMode(\"Add\")\r\n }\r\n\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n\r\n const onCancel = () => {\r\n\r\n setInitialEventType({\r\n ..._InitialDataEventType,\r\n FormStatus: \"Y\",\r\n NotiTime: \"\",\r\n EventGroup: \"\",\r\n });\r\n setsMode(\"Add\")\r\n }\r\n\r\n //#region event\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const handleSelectAllClick = (event: React.ChangeEvent) => {\r\n if (event.target.checked) {\r\n const newSelecteds = lstData.map((n) => n.nNotiID);\r\n setSelected(newSelecteds);\r\n return;\r\n }\r\n setSelected([]);\r\n };\r\n\r\n const handleClick = (event: React.MouseEvent, ID: any) => {\r\n const selectedIndex = selected.indexOf(ID);\r\n let newSelected: number[] = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, ID);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n setSelected(newSelected);\r\n };\r\n const onDelete = () => {\r\n //console.log(\"selected\", selected)\r\n DialogConfirmDelete(() => {\r\n let qbj = { lstID: selected };\r\n\r\n AxiosPost(sController + \"/onDelete\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n LoadData();\r\n setSelected([]);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n };\r\n //#endregion\r\n\r\n const onSaveData = (values, { setFieldValue, setFieldError }) => {\r\n console.log(\"values\", values)\r\n setInitialEventType({\r\n ..._InitialDataEventType,\r\n FormStatus: values.FormStatus,\r\n NotiTime: values.NotiTime,\r\n EventGroup: values.EventGroup,\r\n });\r\n if (Number.isInteger(Number(values.NotiTime)) === true) {\r\n let obj = {\r\n sEventGroup: values.EventGroup,\r\n sStatus: values.FormStatus,\r\n sDay: values.NotiTime,\r\n sMode: sMode,\r\n nID: nID\r\n };\r\n\r\n setInitialEventType({\r\n ..._InitialDataEventType,\r\n FormStatus: values.FormStatus,\r\n NotiTime: values.NotiTime,\r\n EventGroup: values.EventGroup,\r\n });\r\n\r\n DialogConfirm(() => {\r\n AxiosPost(\"NotificationTime\" + \"/onSaveData\", obj, (res) => {\r\n ResultAPI(false, res, null, () => {\r\n LoadData();\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n }\r\n else {\r\n setInitialEventType({\r\n ..._InitialDataEventType,\r\n FormStatus: values.FormStatus,\r\n NotiTime: \"\",\r\n EventGroup: values.EventGroup,\r\n });\r\n }\r\n \r\n };\r\n\r\n const onEdit = (id) => {\r\n console.log(\"id\", id)\r\n setnID(id)\r\n let obj = {\r\n nID: id,\r\n };\r\n\r\n AxiosPost(\"NotificationTime\" + \"/onEdit\", obj, (res) => {\r\n ResultAPI(false, res, null, () => {\r\n setsMode(\"Edit\");\r\n setInitialEventType({\r\n ..._InitialDataEventType,\r\n FormStatus: res.sStatus,\r\n NotiTime: res.sDay,\r\n EventGroup: res.sEventGroup,\r\n });\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n //#region set Header\r\n const headCells: HeadCell[] = [\r\n { id: 'No', numeric: true, disablePadding: true, label: 'No.', width: 5, isSort: false },\r\n { id: 'sEventGroupName', numeric: false, disablePadding: true, label: 'Event Group', width: 30, isSort: true },\r\n { id: 'nDay', numeric: false, disablePadding: false, label: 'Day Before', width: 15, isSort: true },\r\n { id: 'cStatus', numeric: false, disablePadding: false, label: 'Status', width: 10, isSort: true },\r\n { id: 'sUpdateBy', numeric: false, disablePadding: false, label: 'Updated By', width: 15, isSort: true },\r\n { id: 'dUpdate', numeric: false, disablePadding: false, label: 'Last Update', width: 20, isSort: true },\r\n ];\r\n\r\n \r\n\r\n const Header = () => {\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {isView === false && \r\n 0 && selected.length < lstData.length}\r\n checked={lstData.length > 0 && selected.length === lstData.length}\r\n onChange={handleSelectAllClick}\r\n />\r\n\r\n }\r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n \r\n\r\n \r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n \r\n //#region set Body\r\n const BodyData = () => {\r\n return (\r\n \r\n \r\n\r\n {lstData.length > 0 ? stableSort(lstData, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((row, index) => {\r\n const isItemSelected = isSelected(+row.nNotiID);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n\r\n return (\r\n \r\n {isView === false && \r\n handleClick(event, row.nNotiID)}\r\n inputProps={{ 'aria-labelledby': labelId }}\r\n />\r\n }\r\n\r\n {(rowsPerPage * (page)) + (index + 1)}\r\n {row.sEventGroupName}\r\n {row.nDay}\r\n {row.cStatus}\r\n {row.sUpdateBy}\r\n \r\n {row.dUpdate?dateFormat(row.dUpdate, \"dd/mm/yyyy\"):\"\"}\r\n \r\n {/**/}\r\n {/* */}{/*{nPermission === 2 && }*/}\r\n {/* */}{/*{nPermission === 1 && }*/}\r\n {/* { onEdit(row.nNotiID); }} />*/}\r\n {/**/}\r\n \r\n {/*{nPermission === 2 && }*/}\r\n {/*{nPermission === 1 && }*/}\r\n {nPermission === 2 && { onEdit(row.nNotiID); }} />}\r\n\r\n \r\n \r\n );\r\n })\r\n :\r\n \r\n }\r\n \r\n \r\n \r\n\r\n )\r\n };\r\n //#endregion\r\n\r\n //#region set Pagination \r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n lstData.length > 0 ?\r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n )}\r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n Selected ({selected.length}) Row\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n {(formProps) => {\r\n return (\r\n
\r\n {\r\n scrollToElementValidate(\"formEventType\");\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Day Before \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isView && { formProps.submitForm() }} />}\r\n { onCancel() }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }}\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n // \r\n //
\r\n // \r\n // \r\n // \r\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 Company;","import React, { Fragment } from 'react'\r\nimport { FnBlock_UI } from '../SysComponent/SystemComponent';\r\nimport {\r\n Grid, TableContainer, TableSortLabel, TablePagination,\r\n DialogContent, DialogActions\r\n} from '@material-ui/core';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport Button from '@material-ui/core/Button';\r\nimport {\r\n useStyles, MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order,\r\n PerPageOptions, StyledTableBody, stableSort, getComparator, MuiRowNoData, HeadCell\r\n} from '../form/Table/CustomTable';\r\nconst dateFormat = require('dateformat');\r\nexport interface SubEventTypeProps {\r\n open: boolean;\r\n onClose: (value: string) => void;\r\n rows: any[];\r\n}\r\n\r\nexport const DialogCompanyNoti = (props: SubEventTypeProps) => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('dUpdateDate');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\r\n const { onClose, open, rows } = props;\r\n\r\n const handleClose = () => {\r\n onClose(\"\");\r\n };\r\n\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n //#region set Header\r\n const headCells: HeadCell[] = [\r\n { id: 'No', numeric: true, disablePadding: true, label: 'No.', width: 5, isSort: false },\r\n { id: 'sCompanyName', numeric: false, disablePadding: true, label: 'Company', width: 50, isSort: true },\r\n //{ id: 'dUpdateDate', numeric: false, disablePadding: true, label: 'Last Update', width: 20, isSort: true },\r\n // { id: 'dUpdate', numeric: true, disablePadding: false, label: 'Last Update', width: 25, isSort: true },\r\n ];\r\n\r\n const Header = () => {\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n //#region set Body\r\n const BodyData = () => {\r\n return (\r\n \r\n\r\n {rows.length > 0 ? stableSort(rows, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((row, index) => {\r\n return (\r\n \r\n {index + 1}\r\n {row.sCompanyName}\r\n {/*{dateFormat(new Date(row.dUpdateDate), \"dd/mm/yyyy\")}*/}\r\n {/* {row.dUpdateDate +\" - \"+ row.sEndTime} */}\r\n \r\n );\r\n })\r\n :\r\n \r\n }\r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n //#region set Pagination\r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n rows.length > 0 ?\r\n \r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n return (\r\n \r\n Company\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}","import React, { Fragment, useEffect, useState } from 'react';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { Link } from 'react-router-dom';\r\nimport { Formik, Form } from \"formik\";\r\nimport * as yup from 'yup';\r\nimport {\r\n Encrypt, AxiosPost, ResultAPI, FnBlock_UI, DialogConfirmDelete, NoPermission, AxiosPostExportFile\r\n , MsgValidate, MsgValidateMaxLength, Effect, scrollToElementValidate, DialogConfirm\r\n} from '../SysComponent/SystemComponent';\r\n\r\nimport { MuiButtonSave, MuiButtonCancel, MuiButtonEdite, MuiButtonAdd, MuiButtonDelete, MuiIconButtonItem, MuiIconCheckBoxDelete, MuiButtonExport, MuiButtonView } from '../SysComponent/MaterialComponent'\r\nimport {\r\n useStyles, MuiTableTableToolbar, MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order,\r\n PerPageOptions, StyledTableBody, stableSort, getComparator, MuiRowNoData, HeadCell, defaultPage\r\n} from '../form/Table/CustomTable';\r\nimport { Paper, Grid, TableContainer, TableSortLabel, Typography, TablePagination } from '@material-ui/core';\r\nimport RadioFormItem from '../form/RadioFormItem';\r\nimport { DialogCompanyNoti } from '../DialogComponents/DialogCompanyNoti';\r\n// import { List as LINQ } from 'linqts';\r\nimport SelectNoForm from '../form/SelectNoFormItem';\r\nimport SelectFormItem from '../form/SelectFormItem';\r\nimport InputFormItem from '../form/InputFormItem';\r\nimport {\r\n FormLabel,\r\n} from \"@material-ui/core\";\r\nimport axios from 'axios'\r\nconst sController = \"NotificationCompany\";\r\nconst dateFormat = require('dateformat');\r\nconst Company = () => {\r\n\r\n //#region useState\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('nNotiID');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(defaultPage);\r\n const isSelected = (ID: number) => selected.indexOf(ID) !== -1;\r\n const [lstData, setlstData] = React.useState([] as any[]);\r\n const [lstStatus, setlstStatus] = React.useState([] as any[]);\r\n const [lstDay, setlstDay] = React.useState([] as any[]);\r\n const [lstMonth, setlstMonth] = React.useState([] as any[]);\r\n const [lstCompany, setlstCompany] = React.useState([] as any[]);\r\n const [nPermission, setPermission] = React.useState(0);\r\n const [isView, setisView] = React.useState(false);\r\n const [sMode, setsMode] = React.useState(\"Add\");\r\n const [nID, setnID] = React.useState(0);\r\n const [openSubsidary, setOpenSubsidary] = React.useState({ EventType: false, Remark: false });\r\n const [lstSubsidary, setlstSubsidary] = React.useState([] as any[]);\r\n\r\n const _InitialDataEventType_IN = {\r\n FormStatus: \"Y\",\r\n arrMonth: \"\",\r\n arrCompany: \"\",\r\n arrDay: \"\",\r\n };\r\n const _validateForm = () => {\r\n return validate\r\n }\r\n const [_InitialDataEventType, setInitialEventType] = useState(_InitialDataEventType_IN as any);\r\n //#endregion\r\n\r\n const validate = yup.object().shape({\r\n arrMonth: yup.string().required(MsgValidate.PleaseSpecify + 'Month'),\r\n arrCompany: yup.string().required(MsgValidate.PleaseSpecify + 'Company'),\r\n arrDay: yup.string().required(MsgValidate.PleaseSpecify + 'Date'),\r\n FormStatus: yup.string().required(MsgValidate.PleaseSpecify + 'Status'),\r\n });\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n //#region on Load\r\n const LoadData = () => {\r\n let qbj = {\r\n \r\n };\r\n AxiosPost(sController + \"/LoadDataList\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n\r\n if (response.n_Permission === 1)\r\n setisView(true);\r\n if (response.n_Permission === 0) {\r\n NoPermission();\r\n } else {\r\n setPermission(response.n_Permission);\r\n setPage(0);\r\n setRowsPerPage(defaultPage);\r\n setlstData(response.lstData);\r\n setlstMonth(response.lstMonth)\r\n setlstCompany(response.lstCompany)\r\n setlstStatus(response.lstStatus)\r\n setInitialEventType({\r\n ..._InitialDataEventType,\r\n FormStatus: \"Y\",\r\n arrMonth: \"\",\r\n arrCompany: \"\",\r\n arrDay: \"\",\r\n });\r\n setsMode(\"Add\")\r\n }\r\n\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n\r\n const onSelectMonth = (id) => {\r\n console.log(\"ID\",id)\r\n let qbj = {\r\n sMonth : id\r\n };\r\n AxiosPost(sController + \"/onSelectMonth\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setlstDay(response.lstDay)\r\n })\r\n }, () => { }, UnBlockUI, UnBlockUI)\r\n }\r\n\r\n const onCancel = () => {\r\n\r\n setInitialEventType({\r\n ..._InitialDataEventType,\r\n FormStatus: \"Y\",\r\n arrMonth: \"\",\r\n arrCompany: \"\",\r\n arrDay: \"\",\r\n });\r\n setsMode(\"Add\")\r\n }\r\n\r\n //#region event\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const handleSelectAllClick = (event: React.ChangeEvent) => {\r\n if (event.target.checked) {\r\n const newSelecteds = lstData.map((n) => n.nNotiID);\r\n setSelected(newSelecteds);\r\n return;\r\n }\r\n setSelected([]);\r\n };\r\n\r\n const handleClick = (event: React.MouseEvent, ID: any) => {\r\n const selectedIndex = selected.indexOf(ID);\r\n let newSelected: number[] = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, ID);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n setSelected(newSelected);\r\n };\r\n const onDelete = () => {\r\n //console.log(\"selected\", selected)\r\n DialogConfirmDelete(() => {\r\n let qbj = { lstID: selected };\r\n\r\n AxiosPost(sController + \"/onDelete\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n LoadData();\r\n setSelected([]);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n };\r\n //#endregion\r\n\r\n const onSaveData = (values, { setFieldValue, setFieldError }) => {\r\n console.log(\"value\", values)\r\n let obj = {\r\n sMode : sMode,\r\n FormStatus: values.FormStatus,\r\n arrCompany: values.arrCompany,\r\n arrDay: values.arrDay,\r\n arrMonth: values.arrMonth,\r\n nID: nID\r\n };\r\n\r\n setInitialEventType({\r\n ..._InitialDataEventType,\r\n FormStatus: values.FormStatus,\r\n arrCompany: values.arrCompany,\r\n arrDay: values.arrDay,\r\n arrMonth: values.arrMonth,\r\n });\r\n\r\n DialogConfirm(() => {\r\n AxiosPost(\"NotificationCompany\" + \"/onSaveData\", obj, (res) => {\r\n ResultAPI(false, res, null, () => {\r\n LoadData();\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n };\r\n\r\n const onEdit = (id) => {\r\n console.log(\"id\", id)\r\n let obj = {\r\n nID: id,\r\n };\r\n\r\n AxiosPost(\"NotificationCompany\" + \"/onEdit\", obj, (res) => {\r\n ResultAPI(false, res, null, () => {\r\n setsMode(\"Edit\");\r\n setnID(id)\r\n setInitialEventType({\r\n ..._InitialDataEventType, \r\n FormStatus: res.sStatus,\r\n arrCompany: res.lstSelectCompany,\r\n arrDay: res.sDay,\r\n arrMonth: res.sMonth,\r\n });\r\n setlstDay(res.lstDay)\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n const popupSubsidary = (SubType) => {\r\n\r\n setOpenSubsidary({ ...openSubsidary, EventType: true });\r\n setlstSubsidary([...SubType]);\r\n };\r\n\r\n //#region set Header\r\n const headCells: HeadCell[] = [\r\n { id: 'No', numeric: true, disablePadding: true, label: 'No.', width: 5, isSort: false },\r\n { id: 'sDayMonth', numeric: false, disablePadding: true, label: 'Day-Month', width: 15, isSort: true },\r\n { id: 'nCountlstpopup', numeric: false, disablePadding: false, label: 'Company', width: 15, isSort: true },\r\n { id: 'cStatus', numeric: false, disablePadding: false, label: 'Status', width: 15, isSort: true },\r\n { id: 'sUpdateBy', numeric: false, disablePadding: false, label: 'Updated By', width: 20, isSort: true },\r\n { id: 'dUpdate', numeric: false, disablePadding: false, label: 'Last Update', width: 20, isSort: true },\r\n ];\r\n\r\n const handleCloseSubsidary = (value: string) => {\r\n setOpenSubsidary({ ...openSubsidary, EventType: false });\r\n };\r\n\r\n const Header = () => {\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {isView === false && \r\n 0 && selected.length < lstData.length}\r\n checked={lstData.length > 0 && selected.length === lstData.length}\r\n onChange={handleSelectAllClick}\r\n />\r\n\r\n }\r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n \r\n //#region set Body\r\n const BodyData = () => {\r\n return (\r\n \r\n \r\n\r\n {lstData.length > 0 ? stableSort(lstData, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((row, index) => {\r\n const isItemSelected = isSelected(+row.nNotiID);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n\r\n return (\r\n \r\n {isView === false && \r\n handleClick(event, row.nNotiID)}\r\n inputProps={{ 'aria-labelledby': labelId }}\r\n />\r\n }\r\n\r\n {(rowsPerPage * (page)) + (index + 1)}\r\n {row.sDayMonth}\r\n {(row.lstPopup as any).length > 0 && { popupSubsidary(row.lstPopup) }} />}\r\n {row.cStatus}\r\n {row.sUpdateBy}\r\n \r\n {row.dUpdate?dateFormat(row.dUpdate, \"dd/mm/yyyy\"):\"\"}\r\n \r\n \r\n {/*{nPermission === 2 && }*/}\r\n {/*{nPermission === 1 && }*/}\r\n {nPermission === 2 && { onEdit(row.nNotiID); }} />}\r\n \r\n \r\n \r\n );\r\n })\r\n :\r\n \r\n }\r\n \r\n \r\n \r\n\r\n )\r\n };\r\n //#endregion\r\n\r\n //#region set Pagination \r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n lstData.length > 0 ?\r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n )}\r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n Selected ({selected.length}) Row\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {(formProps) => {\r\n return (\r\n
\r\n {\r\n scrollToElementValidate(\"formEventType\");\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n { onSelectMonth(data) }} options={lstMonth} disable={isView} />\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isView && { formProps.submitForm() }} />}\r\n { onCancel() }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }}\r\n \r\n
\r\n \r\n \r\n
\r\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 Company;","import React, { Fragment, useEffect, useState } from 'react';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { Link } from 'react-router-dom';\r\nimport { Formik, Form } from \"formik\";\r\nimport * as yup from 'yup';\r\nimport {\r\n Encrypt, AxiosPost, ResultAPI, FnBlock_UI, DialogConfirmDelete, NoPermission, AxiosPostExportFile\r\n , MsgValidate, MsgValidateMaxLength, Effect, scrollToElementValidate, DialogConfirm\r\n} from '../SysComponent/SystemComponent';\r\n\r\nimport { MuiButtonSave, MuiButtonCancel, MuiButtonEdite, MuiButtonAdd, MuiButtonDelete, MuiIconButtonItem, MuiIconCheckBoxDelete, MuiButtonExport, MuiButtonView } from '../SysComponent/MaterialComponent'\r\nimport {\r\n useStyles, MuiTableTableToolbar, MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order,\r\n PerPageOptions, StyledTableBody, stableSort, getComparator, MuiRowNoData, HeadCell, defaultPage\r\n} from '../form/Table/CustomTable';\r\nimport { Paper, Grid, TableContainer, TableSortLabel, Typography, TablePagination } from '@material-ui/core';\r\nimport RadioFormItem from '../form/RadioFormItem';\r\n// import { List as LINQ } from 'linqts';\r\nimport SelectNoForm from '../form/SelectNoFormItem';\r\nimport SelectFormItem from '../form/SelectFormItem';\r\nimport InputFormItem from '../form/InputFormItem';\r\nimport {\r\n FormLabel,\r\n} from \"@material-ui/core\";\r\nimport axios from 'axios'\r\nconst sController = \"SetAdvanceEventDays\";\r\nconst dateFormat = require('dateformat');\r\nconst SetAdvanceEventDays = () => {\r\n\r\n //#region useState\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('nNotiID');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(defaultPage);\r\n const isSelected = (ID: number) => selected.indexOf(ID) !== -1;\r\n const [lstData, setlstData] = React.useState([] as any[]);\r\n const [lstEventGroup, setlstEventGroup] = React.useState([] as any[]);\r\n const [lstStatus, setlstStatus] = React.useState([] as any[]);\r\n const [nPermission, setPermission] = React.useState(0);\r\n const [isView, setisView] = React.useState(false);\r\n const [sMode, setsMode] = React.useState(\"Add\");\r\n\r\n const _InitialDataEventType_IN = {\r\n FormStatus: \"Y\",\r\n NotiTime: \"\",\r\n EventGroup: \"\",\r\n };\r\n const _validateForm = () => {\r\n return validate\r\n }\r\n const [_InitialDataEventType, setInitialEventType] = useState(_InitialDataEventType_IN as any);\r\n //#endregion\r\n\r\n const validate = yup.object().shape({\r\n NotiTime: yup.string().required(MsgValidate.PleaseSpecify + 'จำนวนวันรายงานเหตุการณ์ล่วงหน้า'),\r\n EventGroup: yup.string().required(MsgValidate.PleaseSpecify + 'Event Group'),\r\n FormStatus: yup.string().required(MsgValidate.PleaseSpecify + 'Status'),\r\n });\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n //#region on Load\r\n const LoadData = () => {\r\n let qbj = {\r\n\r\n };\r\n AxiosPost(sController + \"/LoadDataList\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n\r\n if (response.n_Permission === 1)\r\n setisView(true);\r\n if (response.n_Permission === 0) {\r\n NoPermission();\r\n } else {\r\n setPermission(response.n_Permission);\r\n setPage(0);\r\n setRowsPerPage(defaultPage);\r\n setlstData(response.lstData);\r\n setlstEventGroup(response.lstEventGroup)\r\n setlstStatus(response.lstStatus)\r\n setInitialEventType({\r\n ..._InitialDataEventType,\r\n FormStatus: \"Y\",\r\n NotiTime: \"\",\r\n EventGroup: \"\",\r\n });\r\n setsMode(\"Add\")\r\n }\r\n\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n\r\n const onCancel = () => {\r\n\r\n setInitialEventType({\r\n ..._InitialDataEventType,\r\n FormStatus: \"\",\r\n NotiTime: \"\",\r\n EventGroup: \"\",\r\n });\r\n setsMode(\"Add\")\r\n }\r\n\r\n //#region event\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const handleSelectAllClick = (event: React.ChangeEvent) => {\r\n if (event.target.checked) {\r\n const newSelecteds = lstData.map((n) => n.nNotiID);\r\n setSelected(newSelecteds);\r\n return;\r\n }\r\n setSelected([]);\r\n };\r\n\r\n const handleClick = (event: React.MouseEvent, ID: any) => {\r\n const selectedIndex = selected.indexOf(ID);\r\n let newSelected: number[] = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, ID);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n setSelected(newSelected);\r\n };\r\n const onDelete = () => {\r\n //console.log(\"selected\", selected)\r\n DialogConfirmDelete(() => {\r\n let qbj = { lstID: selected };\r\n\r\n AxiosPost(sController + \"/onDelete\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n LoadData();\r\n setSelected([]);\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n };\r\n //#endregion\r\n\r\n const onSaveData = (values, { setFieldValue, setFieldError }) => {\r\n setInitialEventType({\r\n ..._InitialDataEventType,\r\n FormStatus: values.FormStatus,\r\n NotiTime: values.NotiTime,\r\n EventGroup: values.EventGroup,\r\n });\r\n if (Number.isInteger(Number(values.NotiTime)) === true) {\r\n let obj = {\r\n sEventGroup: values.EventGroup,\r\n sStatus: values.FormStatus,\r\n sDay: values.NotiTime,\r\n sMode: sMode\r\n };\r\n\r\n setInitialEventType({\r\n ..._InitialDataEventType,\r\n FormStatus: values.FormStatus,\r\n NotiTime: values.NotiTime,\r\n EventGroup: values.EventGroup,\r\n });\r\n\r\n DialogConfirm(() => {\r\n AxiosPost(sController + \"/onSaveData\", obj, (res) => {\r\n ResultAPI(false, res, null, () => {\r\n LoadData();\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n }\r\n else {\r\n setInitialEventType({\r\n ..._InitialDataEventType,\r\n FormStatus: values.FormStatus,\r\n NotiTime: \"\",\r\n EventGroup: values.EventGroup,\r\n });\r\n }\r\n\r\n };\r\n\r\n const onEdit = (id) => {\r\n console.log(\"id\", id)\r\n let obj = {\r\n nID: id,\r\n };\r\n\r\n AxiosPost(sController + \"/onEdit\", obj, (res) => {\r\n ResultAPI(false, res, null, () => {\r\n setsMode(\"Edit\");\r\n setInitialEventType({\r\n ..._InitialDataEventType,\r\n FormStatus: res.sStatus,\r\n NotiTime: res.sDay,\r\n EventGroup: res.sEventGroup,\r\n });\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n //#region set Header\r\n const headCells: HeadCell[] = [\r\n { id: 'No', numeric: true, disablePadding: true, label: 'No.', width: 5, isSort: false },\r\n { id: 'sEventGroupName', numeric: false, disablePadding: true, label: 'Event Group', width: 15, isSort: true },\r\n { id: 'nDay', numeric: false, disablePadding: false, label: 'จำนวนวันรายงานเหตุการณ์ล่วงหน้า', width: 25, isSort: true },\r\n { id: 'cStatus', numeric: false, disablePadding: false, label: 'Status', width: 10, isSort: true },\r\n { id: 'sUpdateBy', numeric: false, disablePadding: false, label: 'Updated By', width: 15, isSort: true },\r\n { id: 'dUpdate', numeric: false, disablePadding: false, label: 'Last Update', width: 15, isSort: true },\r\n ];\r\n\r\n\r\n\r\n const Header = () => {\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n return (\r\n \r\n \r\n\r\n {isView === false && \r\n 0 && selected.length < lstData.length}\r\n checked={lstData.length > 0 && selected.length === lstData.length}\r\n onChange={handleSelectAllClick}\r\n />\r\n\r\n }\r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))}\r\n \r\n {/*{nPermission === 2 && */}\r\n {/* */}\r\n {/*}*/}\r\n \r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n //#region set Body\r\n const BodyData = () => {\r\n return (\r\n \r\n \r\n\r\n {lstData.length > 0 ? stableSort(lstData, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((row, index) => {\r\n const isItemSelected = isSelected(+row.nNotiID);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n\r\n return (\r\n \r\n {isView === false && \r\n handleClick(event, row.nNotiID)}\r\n inputProps={{ 'aria-labelledby': labelId }}\r\n />\r\n }\r\n\r\n {(rowsPerPage * (page)) + (index + 1)}\r\n {row.sEventGroupName}\r\n {row.nDay}\r\n {row.cStatus}\r\n {row.sUpdateBy}\r\n \r\n {row.dUpdate?dateFormat(row.dUpdate, \"dd/mm/yyyy\"):\"\"}\r\n \r\n {/**/}\r\n {/* */}{/*{nPermission === 2 && }*/}\r\n {/* */}{/*{nPermission === 1 && }*/}\r\n {/* { onEdit(row.nNotiID); }} />*/}\r\n {/**/}\r\n \r\n {/*{nPermission === 2 && }*/}\r\n {/*{nPermission === 1 && }*/}\r\n {nPermission === 2 && { onEdit(row.nNotiID); }} />}\r\n\r\n \r\n \r\n );\r\n })\r\n :\r\n \r\n }\r\n \r\n \r\n\r\n\r\n )\r\n };\r\n //#endregion\r\n\r\n //#region set Pagination \r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n lstData.length > 0 ?\r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n )}\r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n Selected ({selected.length}) Row\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n {(formProps) => {\r\n return (\r\n
\r\n {\r\n scrollToElementValidate(\"formEventType\");\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Day \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n {!isView && { formProps.submitForm() }} />}\r\n { onCancel() }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }}\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n // \r\n //
\r\n // \r\n // \r\n // \r\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 SetAdvanceEventDays;","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport FormErrors from \"./formErrors\";\r\nimport { FastField } from \"formik\";\r\nimport DateFnsUtils from \"@material-ui/pickers/adapter/date-fns\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport {\r\n MobileDateRangePicker,\r\n DateRangeDelimiter,\r\n LocalizationProvider,\r\n DateTimePicker,\r\n DatePicker,MobileDatePicker,\r\n} from \"@material-ui/pickers\";\r\nimport DateRangeOutlinedIcon from '@material-ui/icons/DateRangeOutlined';\r\nimport InputAdornment from '@material-ui/core/InputAdornment/InputAdornment';\r\nimport { getLanguage } from \"../../i18n\";\r\nimport { i18n } from \"../../i18n\";\r\nimport { withStyles, Theme, createStyles, makeStyles } from '@material-ui/core/styles';\r\nconst StyledInput = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n width: \"100%\",\r\n top: \"4px\",\r\n\r\n // '& .MuiOutlinedInput-root': {\r\n // '& fieldset': {\r\n // borderRadius: \"0px\",\r\n // },\r\n // fontSize: \"14px\",\r\n // color: \"rgba(0, 0, 0, 0.87)\"\r\n // },\r\n // background: theme.palette.common.white,\r\n // \"& .MuiInputBase-root.Mui-disabled\": {\r\n // background: theme.palette.action.hover,\r\n // },\r\n \"& .MuiOutlinedInput-inputMarginDense\": {\r\n // paddingTop: \"8px\",\r\n // paddingBottom: \"8px\"\r\n minHeight: \"24px\",\r\n },\r\n \"& .MuiInputLabel-outlined\": {\r\n top: 1,\r\n }\r\n // width: \"100%\"\r\n }\r\n }),\r\n)(TextField);\r\n\r\nexport const DatePickerNoForm = (props) => {\r\n const {\r\n label,\r\n name,\r\n hint,\r\n placeholder,\r\n autoFocus,\r\n autoComplete,\r\n minDate,\r\n maxDate,\r\n inputProps,\r\n required,\r\n showTime,\r\n handleDateChange,\r\n defaultValue,\r\n disable\r\n } = props;\r\n const format = showTime ? \"dd/MM/yyyy HH:mm\" : \"dd/MM/yyyy\";\r\n const [selectDate, setselectDate] = React.useState(defaultValue || null); //this.value() || [null, null];\r\n\r\n const handleChangeValue = (date) => {\r\n setselectDate(date);\r\n };\r\n\r\n return (\r\n \r\n
\r\n {\r\n handleChangeValue(value);\r\n if (handleDateChange != undefined) handleDateChange(value);\r\n }}\r\n {...inputProps}\r\n autoOk\r\n renderInput={(startProps, endProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n }} />\r\n \r\n );\r\n }}\r\n />\r\n
\r\n\r\n
\r\n );\r\n}\r\nexport default DatePickerNoForm;\r\n\r\n","import React, { Fragment, useEffect, useState } from 'react';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { Link } from 'react-router-dom';\r\nimport { Formik, Form } from \"formik\";\r\nimport * as yup from 'yup';\r\nimport {\r\n Encrypt, AxiosPost, ResultAPI, FnBlock_UI, DialogConfirmDelete, NoPermission, AxiosPostExportFile\r\n , MsgValidate, MsgValidateMaxLength, Effect, scrollToElementValidate, DialogConfirm\r\n} from '../SysComponent/SystemComponent';\r\n\r\nimport { MuiButtonSearch, MuiButtonCancel, MuiButtonEdite, MuiButtonAdd, MuiButtonDelete, MuiIconButtonItem, MuiIconCheckBoxDelete, MuiButtonExport, MuiButtonView } from '../SysComponent/MaterialComponent'\r\nimport {\r\n useStyles, MuiTableTableToolbar, MuiTable, StyledTableCell, StyledTableRow, StyledTableHead, Order,\r\n PerPageOptions, StyledTableBody, stableSort, getComparator, MuiRowNoData, HeadCell, defaultPage\r\n} from '../form/Table/CustomTable';\r\nimport { Paper, Grid, TableContainer, TableSortLabel, Typography, TablePagination } from '@material-ui/core';\r\nimport RadioFormItem from '../form/RadioFormItem';\r\n// import { List as LINQ } from 'linqts';\r\nimport SelectNoForm from '../form/SelectNoFormItem';\r\nimport SelectFormItem from '../form/SelectFormItem';\r\nimport InputFormItem from '../form/InputFormItem';\r\nimport DatePickerNoForm from '../form/DatePickerNoForm';\r\nimport {\r\n FormLabel,\r\n} from \"@material-ui/core\";\r\nimport axios from 'axios'\r\nconst sController = \"LogExport\";\r\nconst dateFormat = require('dateformat');\r\nconst LogExport = () => {\r\n\r\n //#region useState\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('desc');\r\n const [orderBy, setOrderBy] = React.useState('dDate');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(defaultPage);\r\n const isSelected = (ID: number) => selected.indexOf(ID) !== -1;\r\n const [lstData, setlstData] = React.useState([] as any[]);\r\n const [lstExportType, setlstExportType] = React.useState([] as any[]);\r\n const [nPermission, setPermission] = React.useState(0);\r\n const [sExportType, setsExportType] = React.useState(\"\");\r\n const [dDateStart, setdDateStart] = React.useState(null);\r\n const [dDateEnd, setdDateEnd] = React.useState(null);\r\n const [dDateNow, setdDateNow] = React.useState(new Date());\r\n const [dfilterMinDate, setdfilterMinDate] = React.useState(new Date());\r\n //const [selectDate, setSelectDate] = React.useState([new Date().setDate(new Date().getDate() - 30), new Date()]);\r\n\r\n const _InitialDataEventType_IN = {\r\n sExportType: \"\",\r\n dDateStart: null,\r\n dDateEnd: null,\r\n };\r\n const [_InitialDataEventType, setInitialEventType] = useState(_InitialDataEventType_IN as any);\r\n //#endregion\r\n\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n //#region on Load\r\n const LoadData = () => {\r\n let qbj = {\r\n sExportType: sExportType,\r\n dDateStart: dDateStart != null ? dateFormat(dDateStart, \"dd/mm/yyyy\") : null,\r\n dDateEnd: dDateEnd != null ? dateFormat(dDateEnd, \"dd/mm/yyyy\") : null,\r\n };\r\n \r\n AxiosPost(sController + \"/LoadDataList\", qbj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n\r\n if (response.n_Permission === 0) {\r\n NoPermission();\r\n } else {\r\n setPermission(response.n_Permission);\r\n setPage(0);\r\n setRowsPerPage(defaultPage);\r\n setlstData(response.lstData);\r\n setlstExportType(response.lstExportType)\r\n }\r\n setInitialEventType({\r\n ..._InitialDataEventType,\r\n sExportType: sExportType,\r\n dDateStart: dDateStart,\r\n dDateEnd: dDateEnd,\r\n\r\n });\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n\r\n\r\n //#region event\r\n const handleRequestSort = (event: React.MouseEvent, property: keyof any) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const handleSelectAllClick = (event: React.ChangeEvent) => {\r\n if (event.target.checked) {\r\n const newSelecteds = lstData.map((n) => n.nNotiID);\r\n setSelected(newSelecteds);\r\n return;\r\n }\r\n setSelected([]);\r\n };\r\n\r\n const handleClick = (event: React.MouseEvent, ID: any) => {\r\n const selectedIndex = selected.indexOf(ID);\r\n let newSelected: number[] = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, ID);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n setSelected(newSelected);\r\n };\r\n //#endregion\r\n\r\n\r\n\r\n //#region set Header\r\n const headCells: HeadCell[] = [\r\n { id: 'No', numeric: true, disablePadding: true, label: 'No.', width: 5, isSort: false },\r\n { id: 'sExportType', numeric: false, disablePadding: true, label: 'Menu', width: 25, isSort: true },\r\n { id: 'sFileType', numeric: false, disablePadding: true, label: 'Export Type', width: 15, isSort: true },\r\n { id: 'sCompany', numeric: false, disablePadding: false, label: 'Company', width: 20, isSort: true },\r\n { id: 'sUser', numeric: false, disablePadding: false, label: 'User Export', width: 20, isSort: true },\r\n { id: 'dDate', numeric: true, disablePadding: false, label: 'Export Date', width: 25, isSort: true },\r\n\r\n ];\r\n\r\n\r\n\r\n const Header = () => {\r\n\r\n const createSortHandler = (property) => (event: React.MouseEvent) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n {headCells.map((headCell) => (\r\n \r\n {headCell.isSort ?\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n : headCell.label\r\n }\r\n \r\n ))} \r\n \r\n \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n //#region set Body\r\n const BodyData = () => {\r\n return (\r\n \r\n \r\n\r\n {lstData.length > 0 ? stableSort(lstData, getComparator(order, orderBy))\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((row, index) => {\r\n const isItemSelected = isSelected(+row.nNotiID);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n\r\n return (\r\n \r\n \r\n {(rowsPerPage * (page)) + (index + 1)}\r\n {row.sExportType}\r\n {row.sFileType}\r\n {row.sCompany}\r\n {row.sUser}\r\n {row.sDate}\r\n \r\n );\r\n })\r\n :\r\n \r\n }\r\n \r\n \r\n\r\n\r\n )\r\n };\r\n //#endregion\r\n const onDelete = () => {\r\n console.log(\"selected\", selected)\r\n };\r\n\r\n const Filter = () => {\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n x.value === sExportType)}\r\n isClearable={true}\r\n onChange={values => { setsExportType(values != null ? values.value : \"\") }}\r\n />\r\n \r\n \r\n {\r\n setdDateStart(e);\r\n }}>\r\n\r\n \r\n \r\n {\r\n setdDateEnd(e);\r\n setdfilterMinDate(e);\r\n if (e == null)\r\n setdfilterMinDate(new Date());\r\n }}>\r\n\r\n \r\n \r\n {/* style={{ width: \"100%\" }} */}\r\n \r\n \r\n \r\n
\r\n {lstData.length > 0 ?
\r\n { ExportExcel() }} />\r\n
: }\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n )\r\n };\r\n\r\n const ExportExcel = async () => {\r\n let obj = {\r\n sExportType: sExportType,\r\n dDateStart: dDateStart != null ? dateFormat(dDateStart, \"dd/mm/yyyy\") : null,\r\n dDateEnd: dDateEnd != null ? dateFormat(dDateEnd, \"dd/mm/yyyy\") : null,\r\n };\r\n \r\n let fileName = \"Log_Export\" + \".xlsx\";\r\n await AxiosPostExportFile(sController + \"/ExportExcel\", obj, fileName, () => { }, BlockUI, UnBlockUI);\r\n }\r\n\r\n //#region set Pagination \r\n const Pagination = () => {\r\n const handleChangePage = (event: unknown, newPage: number) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n return (\r\n lstData.length > 0 ?\r\n \r\n \r\n \r\n {selected.length > 0 && (\r\n \r\n Selected ({selected.length}) Row\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n : \r\n )\r\n };\r\n //#endregion\r\n\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\n\r\nexport default LogExport;","import React from \"react\";\r\nimport { FnBlock_UI, AxiosPost, ResultAPI } from '../../SysComponent/SystemComponent';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport FormErrors from \"../../form/formErrors\";\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nconst useStyles = makeStyles((theme) => ({\r\n icon: {\r\n color: theme.palette.text.secondary,\r\n marginRight: theme.spacing(2),\r\n },\r\n}));\r\n\r\nconst StyledInput = withStyles({\r\n root: {\r\n width: \"100%\",\r\n \"& .MuiOutlinedInput-inputMarginDense\": {\r\n // paddingTop: \"8px\",\r\n // paddingBottom: \"8px\"\r\n minHeight: \"24px\",\r\n },\r\n \"& .MuiInputLabel-outlined\": {\r\n top: 1,\r\n }\r\n // width: \"100%\"\r\n }\r\n})(TextField);\r\nexport const AutocompleteEmployee = (props) => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const { form, name, label, CompanyID, onSelect, errorMessage, hint, ...rest } = props;\r\n const classes = useStyles();\r\n const [value, setValue] = React.useState({ label: form.values[name] || \"\", value: form.values[name] || \"\" } as any);\r\n const [inputValue, setInputValue] = React.useState('');\r\n const [options, setOptions] = React.useState([] as any[]);\r\n const [loaded, setloaded] = React.useState(false);\r\n React.useEffect(() => {\r\n let active = true;\r\n if (inputValue === '') {\r\n setOptions(value ? [value] : []);\r\n return undefined;\r\n }\r\n if (inputValue.length >= 3) {\r\n let obj = {\r\n 'nUserCompanyID': CompanyID,\r\n 'sText': inputValue,\r\n };\r\n setloaded(true);\r\n AxiosPost(\"UserPermission/GetUserPIS\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setOptions(response)\r\n setloaded(false);\r\n })\r\n }, () => { })\r\n }\r\n return () => {\r\n active = false;\r\n };\r\n }, [value, inputValue]);\r\n\r\n return (\r\n // (\r\n (typeof option === 'string' ? option : option.value)}\r\n filterOptions={(x) => x}\r\n options={options}\r\n loading={loaded}\r\n autoComplete\r\n includeInputInList\r\n filterSelectedOptions\r\n freeSolo\r\n // clearOnBlur\r\n // selectOnFocus\r\n blurOnSelect\r\n value={value}\r\n onChange={(event, newValue) => {\r\n form.setFieldValue(name, newValue != null ? newValue.value + \"\" : \"\");\r\n // form.setFieldTouched(name);\r\n if (onSelect != undefined) onSelect(newValue);\r\n setOptions(newValue ? [newValue, ...options] : options);\r\n setValue(newValue);\r\n }}\r\n onInputChange={(event, newInputValue) => {\r\n setInputValue(newInputValue);\r\n }}\r\n onFocus={() => {\r\n form.setFieldTouched(name);\r\n }}\r\n // onOpen={() => {\r\n // setOpen(true);\r\n // }}\r\n onClose={() => {\r\n // form.setFieldTouched(name);\r\n form.setFieldError(name, '', false)\r\n }}\r\n\r\n renderInput={(params) => (\r\n ),\r\n endAdornment: (\r\n \r\n {loaded ? : null}\r\n \r\n ),\r\n }} />\r\n )}\r\n renderOption={(option) => {\r\n return (\r\n // \r\n // {option.label}\r\n // \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n {option.label}\r\n {/* */}\r\n \r\n \r\n );\r\n }}\r\n />\r\n // )}\r\n // />\r\n )\r\n}\r\nexport default AutocompleteEmployee;","import React, { Fragment, useEffect, useState, forwardRef, useCallback } from 'react'\r\nimport { Formik, Form } from \"formik\";\r\nimport * as yup from 'yup';\r\nimport { Grid, Paper, Button, TableContainer, Table, TableHead, TableCell, TableRow, TableBody } from '@material-ui/core';\r\nimport SelectFormItem from '../form/SelectFormItem';\r\nimport InputFormItem from 'components/form/InputFormItem';\r\nimport { FnBlock_UI, AxiosPost, ResultAPI, RegexpPasswork, MsgValidate, DialogConfirm, NoPermission, BackToComponent, Decrypt, SwAlert, AlertTitle } from 'components/SysComponent/SystemComponent';\r\nimport { List as LINQ } from 'linqts';\r\nimport { withStyles, Theme, createStyles, makeStyles } from '@material-ui/core/styles';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport MaterialTable from 'material-table';\r\nimport ArrowDownward from '@material-ui/icons/ArrowDownward';\r\nimport Check from '@material-ui/icons/Check';\r\nimport ChevronRight from '@material-ui/icons/ChevronRight';\r\nimport Clear from '@material-ui/icons/Clear';\r\nimport FilterList from '@material-ui/icons/FilterList';\r\nimport Search from '@material-ui/icons/Search';\r\nimport RadioFormItem from '../form/RadioFormItem';\r\nimport { MuiButtonSave, MuiButtonCancel } from 'components/SysComponent/MaterialComponent';\r\nimport { Link } from 'react-router-dom';\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n\r\n\r\nimport AutocompleteEmployee from '../Administrator/Autocomplete/AutocompleteEmployee';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\n\r\n\r\nconst fnInitialDataUser_Fil = {\r\n arrGroupUser: [],\r\n sCompany: \"\",\r\n sEmployeeID: \"\",\r\n sFName: \"\",\r\n sLName: \"\",\r\n sPosition: \"\",\r\n sOrgName: \"\",\r\n sEmail: \"\",\r\n sTel: \"\",\r\n sUsername: \"\",\r\n sPassword: \"\",\r\n sConfirmPassword: \"\",\r\n Status: 'Y',\r\n NotificationStatus: \"Y\",\r\n sInactiveRemark: \"\",\r\n nEmployeeTypeID: \"1\",\r\n};\r\n\r\nconst StyledTableCell = withStyles((theme: Theme) =>\r\n createStyles({\r\n head: {\r\n backgroundColor: \"rgba(0, 120, 255, 0.1)\",\r\n color: theme.palette.common.black,\r\n padding: 10,\r\n },\r\n body: {\r\n fontSize: 14,\r\n },\r\n }),\r\n)(TableCell);\r\n\r\nconst StyledTableRow = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n '&:nth-of-type(even)': {\r\n backgroundColor: \"rgb(186 186 186 / 4%)\",\r\n },\r\n },\r\n }),\r\n)(TableRow);\r\n\r\nconst tableIcons: any = {\r\n Check: forwardRef((props: any, ref: any) => ),\r\n Clear: forwardRef((props: any, ref: any) => ),\r\n Filter: forwardRef((props: any, ref: any) => ),\r\n ResetSearch: forwardRef((props: any, ref: any) => ),\r\n Search: forwardRef((props: any, ref: any) => ),\r\n SortArrow: forwardRef((props: any, ref: any) => ),\r\n DetailPanel: forwardRef((props: any, ref: any) => ),\r\n};\r\n\r\nconst useStyles = makeStyles({\r\n table: {\r\n width: \"100%\",\r\n },\r\n});\r\n\r\nconst sController = \"UserPermission\";\r\nconst Create_UserPermission = () => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const [lstGroupUser, SetGroupUser] = useState([] as any);\r\n const [lstCompany, SetCompany] = useState([] as any);\r\n const classes = useStyles();\r\n const arrStatus = [{ label: \"Active\", value: \"Y\" }, { label: \"Inactive\", value: \"N\" }];\r\n const arrEmpType = [{ label: \"Employee\", value: \"1\" }, { label: \"Contract\", value: \"2\" }];\r\n const [isStatus_Inactive, setStatusInactive] = useState(\"Y\");\r\n const [arrGroupUserSelect, setGroupUserSelect] = useState([] as any);\r\n const [CompanySelect, setCompanySelect] = useState([] as any);\r\n const [isModeEdite, setModeEdite] = useState(false);\r\n const [lstOperation, setOperationList] = useState([] as any);\r\n const [lstCSR, setCSRList] = useState([] as any);\r\n const [lstSecurity, setSecurityList] = useState([] as any)\r\n\r\n const [lstAdminAresOperation, setAdminAresOperationList] = useState([] as any);\r\n const [lstAdminAresCSR, setAdminAresCSRList] = useState([] as any);\r\n const [lstAdminAresSecurity, setAdminAresSecurityList] = useState([] as any)\r\n\r\n const [lstCSRAdminAresCSR, setCSRAdminAresCSRList] = useState([] as any);\r\n\r\n const [lstApprover, setApproverList] = useState([] as any)\r\n const [fnInitialDataUser, setInitialDataUser] = useState(fnInitialDataUser_Fil as any);\r\n\r\n //#region Data sent API\r\n const [UserID, setUserID] = useState(0);\r\n const [UserTypeID, setUserTypeID] = useState(1);\r\n const [lstMenuPermission, SetMenuPermission] = useState([] as any);\r\n const [lstOperationSelect, setOperationSelect] = useState([] as any)\r\n const [lstCSRSelect, setCSRSelect] = useState([] as any)\r\n const [lstSecuritySelect, setSecuritySelect] = useState([] as any)\r\n const [lstApproveSelect, setApproveSelect] = useState([] as any)\r\n\r\n const [lstOperationSelect_AdminArea, setlstOperationSelect_AdminArea] = useState([] as any);\r\n const [lstSecuritySelect_AdminArea, setlstSecuritySelect_AdminArea] = useState([] as any);\r\n const [lstCSRSelect_AdminArea, setlstCSRSelect_AdminArea] = useState([] as any);\r\n\r\n const [lstCSRSelect_CSRAdminArea, setlstCSRSelect_CSRAdminArea] = useState([] as any);\r\n\r\n const [lstCompanyPIS, setlstCompanyPIS] = useState([] as any);\r\n const [isPIS, setisPIS] = useState(false);\r\n const [isAD, setiAD] = useState(false);\r\n const [isView, setView] = useState(false);\r\n const [isCorporateAdmin, setisCorporateAdmin] = useState(false);\r\n //#endregion\r\n\r\n const validateUser = yup.object().shape({\r\n arrGroupUser: yup.array().required(MsgValidate.PleaseSpecify + 'Group User'),\r\n sCompany: yup.string().required(MsgValidate.PleaseSpecify + 'Company'),\r\n sEmployeeID: yup.string().required(MsgValidate.PleaseSpecify + 'Employee ID'),\r\n sFName: yup.string().required(MsgValidate.PleaseSpecify + 'Name'),\r\n sLName: yup.string().required(MsgValidate.PleaseSpecify + 'Surname'),\r\n sEmail: yup.string().email(MsgValidate.InvalidEmail).required(MsgValidate.PleaseSpecify + 'Email'),\r\n sUsername: isAD ? yup.string().notRequired() : yup.string().required(MsgValidate.PleaseSpecify + \"Username\"),\r\n sPassword: isAD ? yup.string().notRequired() : !isModeEdite && yup.string().required(MsgValidate.PleaseSpecify + 'Password').matches(\r\n RegexpPasswork(), MsgValidate.Passwork\r\n ),\r\n sConfirmPassword: isAD ? yup.string().notRequired() : !isModeEdite && yup.string().when(\"sPassword\", {\r\n is: val => (val && val.length > 0 ? true : false),\r\n then: yup.string().oneOf(\r\n [yup.ref(\"sPassword\")], MsgValidate.ConfirmPassword\r\n )\r\n }).required(MsgValidate.PleaseSpecify + 'Confirm Password'),\r\n\r\n Status: yup.string().required(MsgValidate.PleaseSpecify + 'Confirm Status'),\r\n sInactiveRemark: isStatus_Inactive === \"N\" ? yup.string().required(MsgValidate.PleaseSpecify + ' Note set Inactive') : \"\",\r\n });\r\n const handleChange = useCallback((event: React.ChangeEvent, row: any) => {\r\n row.cPermission = event.target.value;\r\n SetMenuPermission([...lstMenuPermission]);\r\n }, [lstMenuPermission, isModeEdite]);\r\n\r\n //#region Call API\r\n const LoadData = () => {\r\n let params = new URLSearchParams(window.location.search)\r\n let ID = params.get('ID');\r\n let obj = {\r\n 'nEditeUserID': +Decrypt(ID)\r\n };\r\n AxiosPost(sController + \"/LoadCreateUserData\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n if (response.nPermission === 0) {\r\n NoPermission();\r\n } else {\r\n console.log(\"response\", response);\r\n setisCorporateAdmin(response.isCorporateAdmin);\r\n setView(response.nPermission === 1);\r\n SetGroupUser(new LINQ(response.lstGropUser).Select(s => ({ label: s.sGroupName, value: s.nGroupID })).ToArray());\r\n SetCompany(new LINQ(response.lstCompany).Select(s => ({ label: s.nCompanyName, value: s.nCompanyID })).ToArray());\r\n SetMenuPermission(response.lstMenuPermission);\r\n setlstCompanyPIS(response.lstCompanyPIS);\r\n if (response.isEdite) {\r\n if (response.userData != null) {\r\n setModeEdite(response.isEdite);\r\n let data = response.userData;\r\n\r\n setInitialDataUser({\r\n ...fnInitialDataUser,\r\n arrGroupUser: data.lstGroupUser,\r\n sCompany: data.nCompanyID,\r\n sEmployeeID: data.sEmployeeID,\r\n sFName: data.sFName,\r\n sLName: data.sLName,\r\n sPosition: data.sPosition,\r\n sOrgName: data.sOrgName,\r\n sEmail: data.sEmail,\r\n sTel: data.sTel,\r\n sUsername: data.sUsername,\r\n NotificationStatus: data.sNotificationStatus,\r\n sPassword: data.sPassword,\r\n sConfirmPassword: data.sPassword,\r\n Status: data.sStatus,\r\n sInactiveRemark: data.sInactiveRemark,\r\n nEmployeeTypeID: \"\" + data.nEmployeeTypeID\r\n })\r\n setisPIS(data.isPIS);\r\n if (data.nCompanyID === 1 && data.nEmployeeTypeID == 1) {\r\n setiAD(true);\r\n }\r\n //setiAD\r\n setUserID(data.nUserID);\r\n setOperationSelect(data.lstOperation);\r\n setCSRSelect(data.lstCSR);\r\n setApproveSelect(data.lstApprover);\r\n setSecuritySelect(data.lstSecurity);\r\n\r\n setlstOperationSelect_AdminArea(data.lstOperation_AdminArea);\r\n setlstCSRSelect_AdminArea(data.lstCSR_AdminArea);\r\n setlstSecuritySelect_AdminArea(data.lstSecurity_AdminArea);\r\n\r\n setlstCSRSelect_CSRAdminArea(data.lstCSR_CSRAdminArea);\r\n\r\n setCompanySelect(data.nCompanyID);\r\n setGroupUserSelect(data.lstGroupUser);\r\n setStatusInactive(data.sStatus);\r\n setUserTypeID(data.nEmployeeTypeID);\r\n\r\n\r\n //GetGroup();\r\n }\r\n\r\n } else {\r\n // setUserID();\r\n }\r\n }\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n\r\n useEffect(() => {\r\n LoadData();\r\n }, []);\r\n\r\n const GetArea = () => {\r\n var qGrup = new LINQ(arrGroupUserSelect).Any(w => w === 4 || w === 5 || w === 3 || w === 7);\r\n if (qGrup) {\r\n let obj = {\r\n 'nUserCompanyID': +CompanySelect\r\n };\r\n AxiosPost(sController + \"/LoadAreaCreateUser\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n console.log(\"response.lstOperation\", response.lstOperation);\r\n if (lstOperationSelect != null) {\r\n response.lstOperation.forEach(f => {\r\n if (new LINQ(lstOperationSelect).Any(a => a.nAreaID === f.nAreaID)) {\r\n f.tableData = { checked: true }\r\n }\r\n });\r\n }\r\n setOperationList(response.lstOperation);\r\n\r\n if (lstCSRSelect != null) {\r\n response.lstCSR.forEach(f => {\r\n if (new LINQ(lstCSRSelect).Any(a => a.nAreaID === f.nAreaID)) {\r\n f.tableData = { checked: true }\r\n }\r\n });\r\n }\r\n\r\n\r\n setCSRList(response.lstCSR);\r\n\r\n if (lstSecuritySelect != null) {\r\n response.lstSecurity.forEach(f => {\r\n if (new LINQ(lstSecuritySelect).Any(a => a.nAreaID === f.nAreaID)) {\r\n f.tableData = { checked: true }\r\n }\r\n });\r\n }\r\n setSecurityList(response.lstSecurity);\r\n\r\n if (lstApproveSelect != null) {\r\n response.lstApprover.forEach(f => {\r\n if (new LINQ(lstApproveSelect).Any(a => a.nAreaID === f.nAreaID)) {\r\n f.tableData = { checked: true }\r\n }\r\n });\r\n }\r\n setApproverList(response.lstApprover);\r\n\r\n if (lstOperationSelect_AdminArea != null) {\r\n console.log(\"lstAdminAreaOperation\", response.lstAdminAreaOperation);\r\n response.lstAdminAreaOperation.forEach(f => {\r\n if (new LINQ(lstOperationSelect_AdminArea).Any(a => a.nAreaID === f.nAreaID)) {\r\n f.tableData = { checked: true }\r\n }\r\n });\r\n }\r\n setAdminAresOperationList(response.lstAdminAreaOperation);\r\n\r\n if (lstSecuritySelect_AdminArea != null) {\r\n response.lstAdminAreaSecurity.forEach(f => {\r\n if (new LINQ(lstSecuritySelect_AdminArea).Any(a => a.nAreaID === f.nAreaID)) {\r\n f.tableData = { checked: true }\r\n }\r\n });\r\n }\r\n setAdminAresSecurityList(response.lstAdminAreaSecurity);\r\n\r\n if (lstCSRSelect_AdminArea != null) {\r\n response.lstAdminAreaCSR.forEach(f => {\r\n if (new LINQ(lstCSRSelect_AdminArea).Any(a => a.nAreaID === f.nAreaID)) {\r\n f.tableData = { checked: true }\r\n }\r\n });\r\n }\r\n setAdminAresCSRList(response.lstAdminAreaCSR);\r\n\r\n if (lstCSRSelect_CSRAdminArea != null) {\r\n response.lstCSRAdmin.forEach(f => {\r\n if (new LINQ(lstCSRSelect_CSRAdminArea).Any(a => a.nAreaID === f.nAreaID)) {\r\n f.tableData = { checked: true }\r\n }\r\n });\r\n }\r\n\r\n setCSRAdminAresCSRList(response.lstCSRAdmin);\r\n\r\n\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n };\r\n\r\n\r\n useEffect(() => {\r\n GetArea();\r\n }, [arrGroupUserSelect, CompanySelect]);\r\n\r\n const onSaveData = (formProps) => {\r\n let obj = {\r\n isEdite: isModeEdite,\r\n nUserID: UserID,\r\n sNotificationStatus: formProps.NotificationStatus,\r\n lstGroupUser: formProps.arrGroupUser,\r\n nCompanyID: +formProps.sCompany,\r\n sEmployeeID: formProps.sEmployeeID,\r\n sFName: formProps.sFName,\r\n sLName: formProps.sLName,\r\n sPosition: formProps.sPosition,\r\n sOrgName: formProps.sOrgName,\r\n sEmail: formProps.sEmail,\r\n sUsername: formProps.sUsername,\r\n sPassword: formProps.sConfirmPassword,\r\n sStatus: formProps.Status,\r\n sInactiveRemark: formProps.sInactiveRemark,\r\n sTel: formProps.sTel,\r\n lstOperation: new LINQ(lstOperationSelect).Select(s => ({\r\n cRequireApprove: s.cRequireApprove, isCheck: s.isCheck,\r\n nAreaID: s.nAreaID, nEventGroupID: s.nEventGroupID, nHeadAreaID: s.nHeadAreaID, sAreaName: s.sAreaName\r\n })).ToArray(),\r\n lstApprover: new LINQ(lstApproveSelect).Select(s => ({\r\n cRequireApprove: s.cRequireApprove, isCheck: s.isCheck,\r\n nAreaID: s.nAreaID, nEventGroupID: s.nEventGroupID, nHeadAreaID: s.nHeadAreaID, sAreaName: s.sAreaName\r\n })).ToArray(),\r\n lstCSR: new LINQ(lstCSRSelect).Select(s => ({\r\n cRequireApprove: s.cRequireApprove, isCheck: s.isCheck,\r\n nAreaID: s.nAreaID, nEventGroupID: s.nEventGroupID, nHeadAreaID: s.nHeadAreaID, sAreaName: s.sAreaName\r\n })).ToArray(),\r\n lstSecurity: new LINQ(lstSecuritySelect).Select(s => ({\r\n cRequireApprove: s.cRequireApprove, isCheck: s.isCheck,\r\n nAreaID: s.nAreaID, nEventGroupID: s.nEventGroupID, nHeadAreaID: s.nHeadAreaID, sAreaName: s.sAreaName\r\n })).ToArray(),\r\n lstOperation_AdminArea: new LINQ(lstOperationSelect_AdminArea).Select(s => ({\r\n cRequireApprove: s.cRequireApprove, isCheck: s.isCheck,\r\n nAreaID: s.nAreaID, nEventGroupID: s.nEventGroupID, nHeadAreaID: s.nHeadAreaID, sAreaName: s.sAreaName\r\n })).ToArray(),\r\n lstCSR_AdminArea: new LINQ(lstCSRSelect_AdminArea).Select(s => ({\r\n cRequireApprove: s.cRequireApprove, isCheck: s.isCheck,\r\n nAreaID: s.nAreaID, nEventGroupID: s.nEventGroupID, nHeadAreaID: s.nHeadAreaID, sAreaName: s.sAreaName\r\n })).ToArray(),\r\n lstSecurity_AdminArea: new LINQ(lstSecuritySelect_AdminArea).Select(s => ({\r\n cRequireApprove: s.cRequireApprove, isCheck: s.isCheck,\r\n nAreaID: s.nAreaID, nEventGroupID: s.nEventGroupID, nHeadAreaID: s.nHeadAreaID, sAreaName: s.sAreaName\r\n })).ToArray(),\r\n lstMenuPermission: lstMenuPermission,\r\n lstCSR_CSRAdminArea: new LINQ(lstCSRSelect_CSRAdminArea).Select(s => ({\r\n cRequireApprove: s.cRequireApprove, isCheck: s.isCheck,\r\n nAreaID: s.nAreaID, nEventGroupID: s.nEventGroupID, nHeadAreaID: s.nHeadAreaID, sAreaName: s.sAreaName\r\n })).ToArray(),\r\n nEmployeeTypeID: +formProps.nEmployeeTypeID\r\n }\r\n\r\n let pass = \"0\";\r\n if ((obj.lstGroupUser as any[]).filter(w => (+w) == 4).length == 1) {\r\n if (obj.lstOperation.length > 0 || obj.lstSecurity.length > 0 || obj.lstCSR.length > 0) {\r\n\r\n } else {\r\n pass = \"1\";\r\n SwAlert.Error(AlertTitle.Warning, \"Please select reporting area (Reporter Role)\", () => { });\r\n }\r\n }\r\n\r\n if (pass === \"0\") {\r\n if ((obj.lstGroupUser as any[]).filter(w => (+w) == 3).length == 1) {\r\n if (obj.lstOperation_AdminArea.length > 0 || obj.lstSecurity_AdminArea.length > 0 || obj.lstCSR_AdminArea.length > 0) {\r\n\r\n } else {\r\n pass = \"1\";\r\n SwAlert.Error(AlertTitle.Warning, \"Please select reporting area (Admin Area Role)\", () => { });\r\n }\r\n }\r\n }\r\n if (pass === \"0\") {\r\n if ((obj.lstGroupUser as any[]).filter(w => (+w) == 7).length == 1) {\r\n if (obj.lstCSR_CSRAdminArea.length > 0) {\r\n\r\n } else {\r\n pass = \"1\";\r\n SwAlert.Error(AlertTitle.Warning, \"Please select reporting area (CSR Admin Area Role)\", () => { });\r\n }\r\n }\r\n }\r\n if (pass === \"0\") {\r\n if ((obj.lstGroupUser as any[]).filter(w => (+w) == 5).length == 1) {\r\n if (obj.lstApprover.length > 0) {\r\n\r\n } else {\r\n pass = \"1\";\r\n SwAlert.Error(AlertTitle.Warning, \"Please select approval area (Approver Role)\", () => { });\r\n }\r\n }\r\n }\r\n\r\n if (pass === \"0\") {\r\n DialogConfirm(() => {\r\n AxiosPost(sController + \"/SaveCreateUser\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n BackToComponent(\"BackTOUser\");\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n });\r\n } else {\r\n\r\n }\r\n };\r\n\r\n const resetPasswork = () => {\r\n let obj = {\r\n 'nEditeUserID': +UserID,\r\n };\r\n DialogConfirm(() => {\r\n AxiosPost(sController + \"/ResetPasswork\", obj, (response) => {\r\n ResultAPI(false, response, \"Reset Password Completed.
Please check E-mail inbox.\", () => {\r\n // BackToComponent(\"BackTOUser\");\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }, null, \"Do you want to Reset Password?\");\r\n }\r\n //#endregion\r\n\r\n\r\n //#region Operation\r\n const Operation_fragment = useCallback(() => {\r\n return ( rows.find((a: any) => a.nAreaID === row.nHeadAreaID)}\r\n options={{\r\n selection: true,\r\n paging: isView,\r\n showSelectAllCheckbox: !isView,\r\n selectionProps: rowData => ({\r\n disabled: isView,\r\n })\r\n }}\r\n onSelectionChange={SetOperationSelectData}\r\n localization={{\r\n\r\n toolbar: {\r\n nRowsSelected: 'Operation {0} row(s) selected'\r\n },\r\n header: {\r\n actions: 'Actions'\r\n },\r\n body: {\r\n emptyDataSourceMessage: 'No Data',\r\n filterRow: {\r\n filterTooltip: 'Filter'\r\n }\r\n }\r\n }}\r\n />\r\n )\r\n }, [lstOperation, isView]);\r\n\r\n const SetOperationSelectData = useCallback((rows, row) => {\r\n setOperationSelect(rows)\r\n }, [lstOperation, isView]);\r\n\r\n //#endregion\r\n\r\n //#region CSR\r\n const CSR_fragment = useCallback(() => {\r\n return ( rows.find((a: any) => a.nAreaID === row.nHeadAreaID)}\r\n\r\n options={{\r\n selection: true,\r\n paging: false,\r\n showSelectAllCheckbox: !isView,\r\n selectionProps: rowData => ({\r\n disabled: isView,\r\n })\r\n }}\r\n onSelectionChange={(rows) => SetCSRSelectData(rows)}\r\n localization={{\r\n toolbar: {\r\n nRowsSelected: 'CSR {0} row(s) selected'\r\n },\r\n header: {\r\n actions: 'Actions'\r\n },\r\n body: {\r\n emptyDataSourceMessage: 'No Data',\r\n filterRow: {\r\n filterTooltip: 'Filter'\r\n }\r\n }\r\n }}\r\n />\r\n )\r\n }, [lstCSR, isView]);\r\n\r\n const SetCSRSelectData = useCallback((rows: any[]) => {\r\n setCSRSelect(rows)\r\n }, [lstCSRSelect, isView]);\r\n //#endregion\r\n\r\n //#region Security\r\n const Security_fragment = useCallback(() => {\r\n return (\r\n rows.find((a: any) => a.nAreaID === row.nHeadAreaID)}\r\n options={{\r\n selection: true,\r\n paging: false,\r\n showSelectAllCheckbox: !isView,\r\n selectionProps: rowData => ({\r\n disabled: isView,\r\n })\r\n }}\r\n onSelectionChange={(rows) => SetSecuritySelectData(rows)}\r\n localization={{\r\n toolbar: {\r\n nRowsSelected: 'Security {0} row(s) selected'\r\n },\r\n header: {\r\n actions: 'Actions'\r\n },\r\n body: {\r\n emptyDataSourceMessage: 'No Data',\r\n filterRow: {\r\n filterTooltip: 'Filter'\r\n }\r\n }\r\n }}\r\n />\r\n )\r\n }, [lstSecurity, isView])\r\n\r\n const SetSecuritySelectData = useCallback((rows: any[]) => {\r\n setSecuritySelect(rows)\r\n }, [lstSecuritySelect, isView]);\r\n\r\n //#endregion\r\n\r\n //#region Approver\r\n const Approver_fragment = useCallback(() => {\r\n return ( rows.find((a: any) => a.nAreaID === row.nHeadAreaID)}\r\n options={{\r\n selection: true,\r\n paging: false,\r\n showSelectAllCheckbox: !isView,\r\n selectionProps: rowData => ({\r\n disabled: isView,\r\n })\r\n }}\r\n onSelectionChange={(rows) => SetApproverSelectData(rows)}\r\n localization={{\r\n toolbar: {\r\n nRowsSelected: '{0} row(s) selected'\r\n },\r\n header: {\r\n actions: 'Actions'\r\n },\r\n body: {\r\n emptyDataSourceMessage: 'No Data',\r\n filterRow: {\r\n filterTooltip: 'Filter'\r\n }\r\n }\r\n }}\r\n />\r\n )\r\n }, [lstApprover, isView]);\r\n const SetApproverSelectData = useCallback((rows: any[]) => {\r\n setApproveSelect(rows)\r\n }, [lstApproveSelect, isView]);\r\n //#endregion\r\n\r\n //#region Area Admin\r\n const AdminArea_Operation_fragment = useCallback(() => {\r\n return ( rows.find((a: any) => a.nAreaID === row.nHeadAreaID)}\r\n options={{\r\n selection: true,\r\n paging: false,\r\n showSelectAllCheckbox: !isView,\r\n selectionProps: rowData => ({\r\n disabled: isView,\r\n })\r\n }}\r\n onSelectionChange={SetOperationSelectData_AdminArea}\r\n localization={{\r\n\r\n toolbar: {\r\n nRowsSelected: 'Operation {0} row(s) selected'\r\n },\r\n header: {\r\n actions: 'Actions'\r\n },\r\n body: {\r\n emptyDataSourceMessage: 'No Data',\r\n filterRow: {\r\n filterTooltip: 'Filter'\r\n }\r\n }\r\n }}\r\n />\r\n )\r\n }, [lstAdminAresOperation, isView]);\r\n\r\n const SetOperationSelectData_AdminArea = useCallback((rows, row) => {\r\n setlstOperationSelect_AdminArea(rows)\r\n }, [lstAdminAresOperation, isView]);\r\n\r\n\r\n const AdminArea_Security_fragment = useCallback(() => {\r\n return (\r\n rows.find((a: any) => a.nAreaID === row.nHeadAreaID)}\r\n options={{\r\n selection: true,\r\n paging: false,\r\n showSelectAllCheckbox: !isView,\r\n selectionProps: rowData => ({\r\n disabled: isView,\r\n })\r\n }}\r\n onSelectionChange={(rows) => SetSecuritySelectData_AdminArea(rows)}\r\n localization={{\r\n toolbar: {\r\n nRowsSelected: 'Security {0} row(s) selected'\r\n },\r\n header: {\r\n actions: 'Actions'\r\n },\r\n body: {\r\n emptyDataSourceMessage: 'No Data',\r\n filterRow: {\r\n filterTooltip: 'Filter'\r\n }\r\n }\r\n }}\r\n />\r\n )\r\n }, [lstAdminAresSecurity, isView])\r\n\r\n const SetSecuritySelectData_AdminArea = useCallback((rows: any[]) => {\r\n setlstSecuritySelect_AdminArea(rows)\r\n }, [lstAdminAresSecurity, isView]);\r\n\r\n const AdminArea_CSR_fragment = useCallback(() => {\r\n return ( rows.find((a: any) => a.nAreaID === row.nHeadAreaID)}\r\n\r\n options={{\r\n selection: true,\r\n paging: false,\r\n showSelectAllCheckbox: !isView,\r\n selectionProps: rowData => ({\r\n disabled: isView,\r\n })\r\n }}\r\n onSelectionChange={(rows) => SetCSRSelectData_AdminArea(rows)}\r\n localization={{\r\n toolbar: {\r\n nRowsSelected: 'CSR {0} row(s) selected'\r\n },\r\n header: {\r\n actions: 'Actions'\r\n },\r\n body: {\r\n emptyDataSourceMessage: 'No Data',\r\n filterRow: {\r\n filterTooltip: 'Filter'\r\n }\r\n }\r\n }}\r\n />\r\n )\r\n }, [lstAdminAresCSR, isView]);\r\n\r\n const SetCSRSelectData_AdminArea = useCallback((rows: any[]) => {\r\n setlstCSRSelect_AdminArea(rows)\r\n }, [lstAdminAresCSR, isView]);\r\n //#endregion\r\n\r\n //#region CSR Admin\r\n\r\n const CSRAdminArea_CSR_fragment = useCallback(() => {\r\n return ( rows.find((a: any) => a.nAreaID === row.nHeadAreaID)}\r\n\r\n options={{\r\n selection: true,\r\n paging: false,\r\n showSelectAllCheckbox: !isView,\r\n selectionProps: rowData => ({\r\n disabled: isView,\r\n })\r\n }}\r\n onSelectionChange={(rows) => SetCSRSelectData_CSRAdminArea(rows)}\r\n localization={{\r\n toolbar: {\r\n nRowsSelected: 'CSR {0} row(s) selected'\r\n },\r\n header: {\r\n actions: 'Actions'\r\n },\r\n body: {\r\n emptyDataSourceMessage: 'No Data',\r\n filterRow: {\r\n filterTooltip: 'Filter'\r\n }\r\n }\r\n }}\r\n />\r\n )\r\n }, [lstCSRAdminAresCSR, isView]);\r\n\r\n const SetCSRSelectData_CSRAdminArea = useCallback((rows: any[]) => {\r\n setlstCSRSelect_CSRAdminArea(rows)\r\n }, [lstCSRAdminAresCSR, isView]);\r\n //#endregion\r\n\r\n //#region Componet\r\n\r\n\r\n\r\n useEffect(() => {\r\n if (new LINQ(arrGroupUserSelect).Any(a => a === 1)) {\r\n let q = new LINQ(lstGroupUser).Where(f => f.value === 2 || f.value === 3 || f.value === 7).ToArray();\r\n q.forEach(f => f.isDisabled = true)\r\n SetGroupUser(lstGroupUser);\r\n\r\n } else if (new LINQ(arrGroupUserSelect).Any(a => a === 2)) {\r\n let q = new LINQ(lstGroupUser).Where(f => f.value === 1 || f.value === 3 || f.value === 7).ToArray();\r\n q.forEach(f => f.isDisabled = true)\r\n SetGroupUser(lstGroupUser);\r\n } else if (new LINQ(arrGroupUserSelect).Any(a => a === 3)) {\r\n let q = new LINQ(lstGroupUser).Where(f => f.value === 1 || f.value === 2 || f.value === 7).ToArray();\r\n q.forEach(f => f.isDisabled = true)\r\n SetGroupUser(lstGroupUser);\r\n } else if (new LINQ(arrGroupUserSelect).Any(a => a === 7)) {\r\n let q = new LINQ(lstGroupUser).Where(f => f.value === 1 || f.value === 2 || f.value === 3).ToArray();\r\n q.forEach(f => f.isDisabled = true)\r\n SetGroupUser(lstGroupUser);\r\n } else {\r\n let q = new LINQ(lstGroupUser).Where(f => f.value === 1 || f.value === 2 || f.value === 3 || f.value === 7).ToArray();\r\n q.forEach(f => f.isDisabled = false)\r\n SetGroupUser(lstGroupUser);\r\n }\r\n }, [arrGroupUserSelect, lstGroupUser]);\r\n\r\n const GroupUser = useCallback((props) => {\r\n const { formProps } = props;\r\n return (\r\n {\r\n\r\n setGroupUserSelect(new LINQ(data).Select(s => s.value).ToArray());\r\n\r\n if (new LINQ(data).Any(a => a.value === 1)) {\r\n // let qw = new LINQ(lstMenuPermission).FirstOrDefault(w => w.nMenuID == 4);\r\n // if (qw != undefined && qw != null) {\r\n // qw.cPermission = \"2\";\r\n // }\r\n lstMenuPermission.forEach(element => {\r\n element.cPermission = \"2\";\r\n });\r\n let q = new LINQ(lstGroupUser).Where(f => f.value === 2 || f.value === 3 || f.value === 7).ToArray();\r\n q.forEach(f => f.isDisabled = true)\r\n SetGroupUser(lstGroupUser);\r\n\r\n } else if (new LINQ(data).Any(a => a.value === 2)) {\r\n lstMenuPermission.forEach(element => {\r\n if (element.nMenuID === 4) {\r\n element.cPermission = \"1\";\r\n } else {\r\n element.cPermission = \"2\";\r\n }\r\n });\r\n let q = new LINQ(lstGroupUser).Where(f => f.value === 1 || f.value === 3 || f.value === 7).ToArray();\r\n q.forEach(f => f.isDisabled = true)\r\n SetGroupUser(lstGroupUser);\r\n\r\n\r\n\r\n } else if (new LINQ(data).Any(a => a.value === 3)) {\r\n lstMenuPermission.forEach(element => {\r\n element.cPermission = \"2\";\r\n });\r\n\r\n let q = new LINQ(lstGroupUser).Where(f => f.value === 1 || f.value === 2 || f.value === 7).ToArray();\r\n q.forEach(f => f.isDisabled = true)\r\n SetGroupUser(lstGroupUser);\r\n\r\n } else if (new LINQ(data).Any(a => a.value === 7)) {\r\n lstMenuPermission.forEach(element => {\r\n if (element.nMenuID === 4) {\r\n element.cPermission = \"1\";\r\n } else {\r\n element.cPermission = \"2\";\r\n }\r\n });\r\n let q = new LINQ(lstGroupUser).Where(f => f.value === 1 || f.value === 2 || f.value === 3).ToArray();\r\n q.forEach(f => f.isDisabled = true)\r\n SetGroupUser(lstGroupUser);\r\n\r\n } else {\r\n\r\n let q = new LINQ(lstGroupUser).Where(f => f.value === 1 || f.value === 2 || f.value === 3 || f.value === 7).ToArray();\r\n q.forEach(f => f.isDisabled = false)\r\n SetGroupUser(lstGroupUser);\r\n }\r\n\r\n }}\r\n disable={isView}\r\n />\r\n )\r\n }, [lstGroupUser, arrGroupUserSelect, lstMenuPermission, isView]);\r\n\r\n\r\n const getPIS = (UserTypeID_, CompanySelect_) => {\r\n let pis = false;\r\n if ((+UserTypeID_) === 1) {\r\n if (new LINQ(lstCompanyPIS).Any(a => a === (+CompanySelect_))) {\r\n pis = true;\r\n }\r\n }\r\n setisPIS(pis);\r\n if ((+CompanySelect_) === 1 && (+UserTypeID_) === 1) {\r\n setiAD(true);\r\n } else {\r\n setiAD(false);\r\n }\r\n }\r\n const SetMenuRow = useCallback((props) => {\r\n const { row, idex } = props;\r\n\r\n const SetCell = () => {\r\n return (\r\n {row.sMenuName}\r\n \r\n { handleChange(e, row) }}\r\n value=\"0\"\r\n name={\"radio-button-demo\" + idex}\r\n disabled={isView ? true : (row.nMenuID ===4?!isCorporateAdmin:false)}\r\n />\r\n\r\n \r\n \r\n { handleChange(e, row) }}\r\n value=\"1\"\r\n name={\"radio-button-demo\" + idex}\r\n disabled={isView ? true : (row.nMenuID ===4?!isCorporateAdmin:false)}\r\n />\r\n \r\n \r\n { handleChange(e, row) }}\r\n value=\"2\"\r\n name={\"radio-button-demo\" + idex}\r\n disabled={isView ? true : (row.nMenuID ===4?!isCorporateAdmin:false)}\r\n />\r\n \r\n )\r\n };\r\n\r\n\r\n if (new LINQ(arrGroupUserSelect).Any(w => w === 1)) {\r\n return ()\r\n } else if (new LINQ(arrGroupUserSelect).Any(w => w === 2) && (row.nMenuID === 4 || row.nMenuID === 8 || row.nMenuID === 11 ||row.nMenuID ==26)) {\r\n return ()\r\n }\r\n else if (new LINQ(arrGroupUserSelect).Any(w => w === 3) && (row.nMenuID === 11||row.nMenuID === 26)) {\r\n return ()\r\n } else if (new LINQ(arrGroupUserSelect).Any(w => w === 7) && (row.nMenuID === 4 || row.nMenuID === 8 || row.nMenuID === 11||row.nMenuID === 26)) {\r\n\r\n return ()\r\n }\r\n else {\r\n return \r\n }\r\n }, [lstMenuPermission, arrGroupUserSelect, isView, isCorporateAdmin]);\r\n\r\n const MenuPermissionTable = useCallback(() => {\r\n return (\r\n new LINQ(arrGroupUserSelect).Where(w => w === 1 || w === 2 || w === 3 || w === 7).Any() ?\r\n \r\n \r\n \r\n \r\n \r\n Menu\r\n Disable\r\n View\r\n Add/Edit/Delete\r\n \r\n \r\n \r\n {\r\n lstMenuPermission.map((row, idex) =>\r\n (\r\n \r\n )\r\n )\r\n }\r\n \r\n
\r\n
\r\n
\r\n : \r\n )\r\n }, [arrGroupUserSelect, lstMenuPermission, isView]);\r\n\r\n const StatusUSer = useCallback((formProps) => {\r\n return (\r\n \r\n \r\n { setStatusInactive(e) }} />\r\n \r\n {\r\n isStatus_Inactive === \"N\" ?\r\n \r\n
\r\n \r\n
\r\n
\r\n : \r\n }\r\n \r\n \r\n \r\n\r\n
\r\n );\r\n }, [arrStatus, isStatus_Inactive, isView])\r\n\r\n const [expanded, setExpanded] = React.useState('panel1');\r\n const handleChangeTab = (panel) => (event, newExpanded) => {\r\n setExpanded(newExpanded ? panel : false);\r\n };\r\n\r\n const Reletion = useCallback(() => {\r\n return (\r\n new LINQ(arrGroupUserSelect).Where(w => w === 4).Any() ?\r\n \r\n \r\n \r\n \r\n
Please select reporting area (Reporter Role)
\r\n
\r\n \r\n {(lstOperation != null && lstOperation.length > 0) ?\r\n \r\n }>\r\n
Operation
\r\n
\r\n \r\n
\r\n : \r\n }\r\n {(lstSecurity != null && lstSecurity.length > 0) ?\r\n \r\n }>\r\n
Security
\r\n
\r\n \r\n
\r\n : \r\n }\r\n {(lstCSR != null && lstCSR.length > 0) ?\r\n \r\n }>\r\n
CSR
\r\n
\r\n \r\n
\r\n : \r\n }\r\n
\r\n\r\n
\r\n
\r\n
\r\n : \r\n )\r\n }, [arrGroupUserSelect, lstOperation, lstCSR, lstSecurity, expanded, isView]);\r\n\r\n const [expandedAdminArea, setExpandedAdminArea] = React.useState('panel1');\r\n const handleChangeTab_AdminArea = (panel) => (event, newExpanded) => {\r\n setExpandedAdminArea(newExpanded ? panel : false);\r\n };\r\n\r\n const AreaAdmin = useCallback(() => {\r\n return (\r\n new LINQ(arrGroupUserSelect).Where(w => w === 3).Any() ?\r\n \r\n \r\n \r\n \r\n
Please select reporting area (Admin Area Role)
\r\n
\r\n \r\n {(lstAdminAresOperation != null && lstAdminAresOperation.length > 0) ?\r\n \r\n }>\r\n
Operation
\r\n
\r\n \r\n
\r\n : \r\n }\r\n {(lstAdminAresSecurity != null && lstAdminAresSecurity.length > 0) ?\r\n \r\n }>\r\n
Security
\r\n
\r\n \r\n
\r\n : \r\n }\r\n {(lstAdminAresCSR != null && lstAdminAresCSR.length > 0) ?\r\n \r\n }>\r\n
CSR
\r\n
\r\n \r\n
\r\n : \r\n }\r\n
\r\n\r\n
\r\n
\r\n
\r\n : \r\n )\r\n }, [arrGroupUserSelect, lstAdminAresOperation, lstAdminAresCSR, lstAdminAresSecurity, expandedAdminArea, isView]);\r\n\r\n const CSRAreaAdmin = useCallback(() => {\r\n return (\r\n new LINQ(arrGroupUserSelect).Where(w => w === 7).Any() ?\r\n \r\n \r\n \r\n \r\n
Please select reporting area (CSR Admin Area Role)
\r\n
\r\n \r\n {(lstAdminAresCSR != null && lstAdminAresCSR.length > 0) ?\r\n \r\n }>\r\n
CSR
\r\n
\r\n \r\n
\r\n : \r\n }\r\n
\r\n\r\n
\r\n
\r\n
\r\n : \r\n )\r\n }, [arrGroupUserSelect, lstAdminAresCSR, expandedAdminArea, isView]);\r\n //rgb(171 248 227)\r\n\r\n const Approver = useCallback(() => {\r\n return (\r\n new LINQ(arrGroupUserSelect).Where(w => w === 5).Any() ?\r\n \r\n \r\n \r\n \r\n
Please select approval area (Approver Role)
\r\n
\r\n \r\n \r\n }>\r\n
Approver
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n : \r\n )\r\n }, [arrGroupUserSelect, lstApprover, isView]);\r\n\r\n const EmployeeUser = (Props) => {\r\n const { formProps } = Props;\r\n return (\r\n \r\n \r\n \r\n {isPIS && isModeEdite === false ?\r\n\r\n {\r\n if (e != undefined) {\r\n formProps.setFieldValue(\"sEmployeeID\", e.sEmpCode);\r\n formProps.setFieldError(\"sEmployeeID\", '', false)\r\n formProps.setFieldValue(\"sUsername\", e.sEmpCode);\r\n formProps.setFieldValue(\"sFName\", e.sFName);\r\n formProps.setFieldValue(\"sLName\", e.sLName);\r\n formProps.setFieldValue(\"sEmail\", e.sEmail || \"\");\r\n formProps.setFieldValue(\"sPosition\", e.sPosition);\r\n formProps.setFieldValue(\"sOrgName\", e.sOrgName);\r\n formProps.setFieldValue(\"sTel\", e.sMobile);\r\n } else {\r\n formProps.setFieldValue(\"sEmployeeID\", \"\");\r\n formProps.setFieldValue(\"sUsername\", \"\");\r\n formProps.setFieldValue(\"sFName\", \"\");\r\n formProps.setFieldValue(\"sLName\", \"\");\r\n formProps.setFieldValue(\"sEmail\", \"\");\r\n formProps.setFieldValue(\"sPosition\", \"\");\r\n formProps.setFieldValue(\"sOrgName\", \"\");\r\n formProps.setFieldValue(\"sTel\", \"\");\r\n }\r\n }}\r\n />\r\n : \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n )\r\n };\r\n const UserContract = useCallback((formProps) => {\r\n return (\r\n isAD === false ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n isModeEdite ?\r\n \r\n {!isView && }\r\n \r\n : \r\n }\r\n \r\n \r\n : \r\n )\r\n }, [isAD, isModeEdite, UserID, isView]);\r\n //#endregion\r\n\r\n return (\r\n \r\n \r\n {(formProps) => {\r\n return (\r\n
\r\n \r\n (formProps.values.arrGroupUser).Where(w => w === 1 || w === 2 || w === 3 || w === 7).Any() ? 6 : 12}>\r\n \r\n \r\n (formProps.values.arrGroupUser).Where(w => w === 1 || w === 2 || w === 3 || w === 7).Any() ? 12 : 6}>\r\n {\r\n\r\n setCompanySelect(data);\r\n getPIS(formProps.values.nEmployeeTypeID, data)\r\n formProps.setFieldValue(\"sEmployeeID\", \"\");\r\n formProps.setFieldValue(\"sUsername\", \"\");\r\n formProps.setFieldValue(\"sFName\", \"\");\r\n formProps.setFieldValue(\"sLName\", \"\");\r\n formProps.setFieldValue(\"sEmail\", \"\");\r\n formProps.setFieldValue(\"sPosition\", \"\");\r\n formProps.setFieldValue(\"sOrgName\", \"\");\r\n formProps.setFieldValue(\"sTel\", \"\");\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n getPIS(e, formProps.values.sCompany);\r\n setUserTypeID(+e);\r\n formProps.setFieldValue(\"sEmployeeID\", \"\");\r\n formProps.setFieldValue(\"sUsername\", \"\");\r\n formProps.setFieldValue(\"sFName\", \"\");\r\n formProps.setFieldValue(\"sLName\", \"\");\r\n formProps.setFieldValue(\"sEmail\", \"\");\r\n formProps.setFieldValue(\"sPosition\", \"\");\r\n formProps.setFieldValue(\"sOrgName\", \"\");\r\n formProps.setFieldValue(\"sTel\", \"\");\r\n }} />\r\n \r\n \r\n \r\n (formProps.values.arrGroupUser).Where(w => w === 1 || w === 2 || w === 3 || w === 7).Any() ? 12 : 6}>\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isView && }\r\n \r\n \r\n \r\n \r\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 Create_UserPermission;","import React, { Fragment, useEffect, useState, useCallback } from 'react'\r\nimport '../../../Styles/Fonts/Kanit/css/fonts.css';\r\nimport '../../../Styles/fontawesome-5.13.0/css/all.css'\r\nimport './MP_Back.css';\r\nimport '../../../Styles/perfect-scrollbar/perfect-scrollbar.css'\r\nimport { List as linq } from 'linqts';\r\nimport { Link } from 'react-router-dom';\r\nimport { Badge } from 'reactstrap';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport HomeIcon from '@material-ui/icons/Home';\r\nimport logo from '../../../Images/ico-pttgrp.png';\r\nimport { FnBlock_UI, AxiosPost, ResultAPI, lnkToLogin } from 'components/SysComponent/SystemComponent';\r\nimport { List as LINQ } from 'linqts';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport { blue } from '@material-ui/core/colors';\r\nimport { makeStyles, Button, IconButton } from '@material-ui/core';\r\nimport PerfectScrollbar from \"react-perfect-scrollbar\";\r\n\r\n\r\nconst emails = ['username@gmail.com', 'user02@gmail.com'];\r\nconst useStyles = makeStyles({\r\n avatar: {\r\n backgroundColor: blue[100],\r\n color: blue[600],\r\n },\r\n});\r\n\r\nexport interface SimpleDialogProps {\r\n open: boolean;\r\n selectedValue: string;\r\n data: any[];\r\n onClose: (value: string) => void;\r\n}\r\n\r\nfunction SimpleDialog(props: SimpleDialogProps) {\r\n const classes = useStyles();\r\n const { onClose, selectedValue, open, data } = props;\r\n\r\n const handleClose = () => {\r\n onClose(selectedValue);\r\n };\r\n\r\n const handleListItemClick = (value: string) => {\r\n onClose(value);\r\n };\r\n\r\n return (\r\n \r\n Group User\r\n \r\n {data.map((item, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\n\r\nconst sController = \"MP_Back\";\r\nconst Layout_MP_Back = (Props: any) => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI()\r\n const [objMenu, setObjMenu] = useState({\r\n isVisible: true,\r\n IsopenPage: \"\",\r\n isSideNav: true,\r\n sFullUserName: \"\",\r\n sCompanyName: \"\",\r\n sGroupUserName: \"\",\r\n lstGroupUser: [],\r\n lstMenu: [] as any,\r\n lstMenuAll: [] as any,\r\n })\r\n const [open, setOpen] = React.useState(false);\r\n const [selectedValue, setSelectedValue] = React.useState(emails[1]);\r\n const [openMenu, setOpenMenu] = React.useState(true);\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = (value: string) => {\r\n setOpen(false);\r\n setSelectedValue(value);\r\n };\r\n\r\n const LoadMenu = () => {\r\n AxiosPost(sController + \"/LoadMP_Back\", {}, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n setObjMenu({\r\n ...objMenu,\r\n lstMenu: new LINQ(response.lstMenuData).Where(w => w.nLavel === 0).OrderBy(o => o.nOrderBy).ToArray(),\r\n lstMenuAll: new LINQ(response.lstMenuData).OrderBy(o => o.nOrderBy).ToArray(),\r\n sFullUserName: response.sFullUserName,\r\n sCompanyName: response.sCompanyName,\r\n lstGroupUser: response.lstGroupUser,\r\n sGroupUserName: response.sGroupUserName,\r\n })\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n useEffect(() => {\r\n LoadMenu();\r\n\r\n }, [])\r\n\r\n const toggleMenu = () => {\r\n setObjMenu({\r\n ...objMenu,\r\n isVisible: !objMenu.isVisible ? true : false\r\n });\r\n\r\n var arrMenuLabel = document.getElementsByClassName(\"menu-label\");\r\n var n = arrMenuLabel.length;\r\n if (!objMenu.isVisible) {\r\n setTimeout(() => {\r\n for (var i = 0; i < n; i++) arrMenuLabel[i].className = \"menu-label\"; //arrMenuLabel[i].style.display = \"block\";\r\n\r\n }, 100);\r\n }\r\n else {\r\n for (var i = 0; i < n; i++) arrMenuLabel[i].className = \"menu-label display-none\";//arrMenuLabel[i].style.display = \"none\";\r\n }\r\n\r\n };\r\n\r\n const toggleSideNav = () => {\r\n setObjMenu({\r\n ...objMenu,\r\n isSideNav: !objMenu.isSideNav\r\n });\r\n if (document.body.className === \"nav-expanded\") {\r\n document.body.classList.remove(\"nav-expanded\")\r\n } else {\r\n document.body.classList.add(\"nav-expanded\")\r\n }\r\n }\r\n\r\n const toggleMobilemenu = () => {\r\n if (document.body.className === \"nav-expanded\") {\r\n document.body.classList.remove(\"nav-expanded\")\r\n }\r\n }\r\n\r\n const toggleArea = () => {\r\n document.body.addEventListener('click', toggleMobilemenu);\r\n }\r\n\r\n const setActiveLink = (sLink: any) => {\r\n let sActive = \"\"\r\n let sPath = window.location.pathname.replace(process.env.REACT_APP_API_URL + \"\", \"/\");\r\n // sActive = sLink === sPath ? \"active\" : \"\"\r\n\r\n if (sLink !== sPath) {\r\n var q = new linq(objMenu.lstMenuAll).FirstOrDefault(f => f.sLink === sLink && f.nLavel === 0);\r\n if (q != null) {\r\n let qSub = new linq(objMenu.lstMenuAll).FirstOrDefault(f => f.nHeaderID === q.nMenuID && f.sLink === sPath && f.nLavel !== 0);\r\n if (qSub != null) sActive = \"active\";\r\n } else {\r\n sActive = sLink === sPath ? \"active\" : \"\"\r\n }\r\n } else {\r\n sActive = sLink === sPath ? \"active\" : \"\"\r\n }\r\n return sActive\r\n }\r\n const setActiveManuName = () => {\r\n let sActive = \"\"\r\n let sPath = window.location.pathname.replace(process.env.REACT_APP_API_URL + \"\", \"/\");\r\n let q = new linq(objMenu.lstMenuAll).FirstOrDefault((f) => f.sLink === sPath);\r\n if (q != null) {\r\n sActive = q.sHeaderName\r\n }\r\n return sActive\r\n }\r\n\r\n const LogOut = () => {\r\n AxiosPost(\"Login/ClearSession\", {}, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n lnkToLogin();\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
{\r\n let el = document.getElementById(\"toHome\") as any\r\n el && el.click()\r\n }}>\r\n \r\n
\r\n \r\n
\r\n
Event
\r\n
\r\n
\r\n
Report
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/* */}\r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
{objMenu.sFullUserName}
\r\n
\r\n {objMenu.sCompanyName}
\r\n
\r\n {\r\n\r\n objMenu.lstGroupUser && objMenu.lstGroupUser.length > 1 ?\r\n {objMenu.sGroupUserName}...\r\n : objMenu.sGroupUserName\r\n }\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
toggleMenu()}>\r\n \r\n \r\n \r\n
\r\n
    \r\n {\r\n objMenu.lstMenu.map((items: any, index: number) => {\r\n return (\r\n
  • \r\n \r\n \r\n
    \r\n
    \r\n
    {items.sHeaderName}
    \r\n \r\n
  • \r\n )\r\n })\r\n }\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{setActiveManuName()}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {Props.children}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
PTT PUBLIC COMPANY LIMITED
\r\n
Copyright © 2020 PTT Public Company Limited All rights reserved
\r\n
\r\n \r\n
\r\n
\r\n {/* */}\r\n
\r\n\r\n
\r\n \r\n
    \r\n {\r\n objMenu.lstMenu.map((items: any, index: number) => {\r\n return (\r\n
  • \r\n \r\n \r\n
    \r\n
    \r\n
    {items.sHeaderName}
    \r\n \r\n
  • \r\n )\r\n })\r\n }\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n )\r\n}\r\n\r\nconst Overlay = () => {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Loading
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Layout_MP_Back;","import React, { Fragment, useEffect, useState } from 'react';\r\nimport { Grid, Paper, Button, TableContainer, Table, TableHead, TableCell, TableRow, TableBody } from '@material-ui/core';\r\nimport axios from 'axios'\r\nimport { Process_System, ResultAPI, AxiosPost, FnBlock_UI, DialogConfirmDelete, ParseHtml, AlertTitle, SwAlert } from '../../SysComponent/SystemComponent'\r\nconst ImportUserData = () => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const [lstError, setlstError] = useState([] as any[]);\r\n\r\n const handleInputChange = (event) => {\r\n let files = event.target.files;\r\n onUpload(files[0]);\r\n event.target.files = null;\r\n event.target.value = null;\r\n }\r\n\r\n const handleInputReceiverChange = (event) => {\r\n let files = event.target.files;\r\n onUploadReceiver(files[0]);\r\n event.target.files = null;\r\n event.target.value = null;\r\n }\r\n\r\n const REACT_APP_API_URL_File = process.env.REACT_APP_API_URL;\r\n\r\n const onUpload = async (file) => {\r\n BlockUI();\r\n const formPayload = new FormData()\r\n formPayload.append('file', file)\r\n formPayload.append(\"sFolder\", \"ImportFile\");\r\n try {\r\n await axios({\r\n baseURL: REACT_APP_API_URL_File,\r\n url: \"api/UploadFile/Upload\",\r\n method: 'post',\r\n data: formPayload,\r\n onUploadProgress: progress => {\r\n const { loaded, total } = progress\r\n const percentageProgress = Math.floor((loaded / total) * 100)\r\n },\r\n }).then(function (response) {\r\n let d = response.data;\r\n uploadDB(d)\r\n UnBlockUI();\r\n }).catch(function (error) {\r\n UnBlockUI();\r\n }).then(function () {\r\n UnBlockUI();\r\n });\r\n } catch (error) {\r\n }\r\n };\r\n\r\n const onUploadReceiver = async (file) => {\r\n BlockUI();\r\n const formPayload = new FormData()\r\n formPayload.append('file', file)\r\n formPayload.append(\"sFolder\", \"ImportFile\");\r\n try {\r\n await axios({\r\n baseURL: REACT_APP_API_URL_File,\r\n url: \"api/UploadFile/Upload\",\r\n method: 'post',\r\n data: formPayload,\r\n onUploadProgress: progress => {\r\n const { loaded, total } = progress\r\n const percentageProgress = Math.floor((loaded / total) * 100)\r\n },\r\n }).then(function (response) {\r\n let d = response.data;\r\n uploadDB_Receiver(d)\r\n UnBlockUI();\r\n }).catch(function (error) {\r\n UnBlockUI();\r\n }).then(function () {\r\n UnBlockUI();\r\n });\r\n } catch (error) {\r\n }\r\n };\r\n\r\n\r\n const uploadDB = (dara) => {\r\n BlockUI();\r\n AxiosPost(\"ImportData/ImportData\", dara, (response) => {\r\n if (response.sStatus === \"Error\") {\r\n SwAlert.Warning(AlertTitle.Warning, response.sMsg, () => { });\r\n setlstError(response.lstError ||[]);\r\n\r\n } else {\r\n SwAlert.Success(AlertTitle.Info, \"นำเข้าข้อมูลสำเร็จ\");\r\n setlstError([]);\r\n }\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n const uploadDB_Receiver = (dara) => {\r\n BlockUI();\r\n AxiosPost(\"ImportData/ImportDataReceiver\", dara, (response) => {\r\n if (response.sStatus === \"Error\") {\r\n SwAlert.Warning(AlertTitle.Warning, response.sMsg, () => { });\r\n setlstError(response.lstError ||[]);\r\n\r\n } else {\r\n SwAlert.Success(AlertTitle.Info, \"นำเข้าข้อมูลสำเร็จ\");\r\n setlstError([]);\r\n }\r\n }, () => { }, BlockUI, UnBlockUI)\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n
IMPORT DATA
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
IMPORT Receiver
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {lstError.length > 0 && \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {lstError.length > 0 && lstError.map((item, index) => {\r\n return (\r\n \r\n \r\n )\r\n })}\r\n\r\n \r\n
RowErr
{ParseHtml(item.nRowID)}{ParseHtml(item.sCol1)}
\r\n
}\r\n
\r\n
\r\n )\r\n}\r\nexport default ImportUserData;","import React, { Fragment, useEffect } from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Link } from 'react-router-dom';\r\nconst useStyles = makeStyles((theme) => ({\r\n button: {\r\n margin: theme.spacing(1),\r\n // width: \"150px\",\r\n opacity: 0.9,\r\n },\r\n pBody: {\r\n position: \"absolute\",\r\n top: \"48%\",\r\n left: \"39%\",\r\n },\r\n}));\r\nexport const Manuel = () => {\r\n const classes = useStyles();\r\n const REACT_APP_API_URL_File = process.env.REACT_APP_API_URL;\r\n const toDowloadPDF = (filName) => {\r\n window.location.href = window.location.origin + \"/AD/LoginAD.aspx\";\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Dowload Manual File PDF\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
)\r\n}\r\nexport default Manuel;","import React, { Fragment } from 'react';\r\nimport { Button } from 'reactstrap';\r\nimport { FnBlock_UI, AxiosPost, SwAlert } from './SysComponent/SystemComponent';\r\nimport { Formik, Form } from \"formik\";\r\nimport InputFormItemLogin from './form/InputFormItemLogin'\r\nconst sController = \"TestSentMail\";\r\n\r\nconst TestSentMail = () => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n\r\n const fnInitialDataUser = {\r\n txtEmailTo: \"\",\r\n txtEmailFrom: \"\",\r\n txtsmtpmail: \"\",\r\n txtport: \"\",\r\n txtmessage: \"\"\r\n };\r\n\r\n const onSentMail = (formProps) => {\r\n let obj = {\r\n 'txtEmailTo': formProps.txtEmailTo,\r\n 'txtEmailFrom': formProps.txtEmailFrom,\r\n 'txtsmtpmail': formProps.txtsmtpmail,\r\n 'txtport': formProps.txtport,\r\n 'txtmessage': formProps.txtmessage,\r\n };\r\n BlockUI();\r\n\r\n AxiosPost(sController + \"/SendMailTest\", obj, (response) => {\r\n UnBlockUI();\r\n if (response.IsComplete === true) {\r\n SwAlert.Warning(\"ผล\", \"ส่งผ่าน\", () => { });\r\n } else {\r\n SwAlert.Warning(\"ผล ไม่ผ่าน\", response.sErrorMSG, () => { });\r\n }\r\n });\r\n };\r\n\r\n const sentSystem=()=>{\r\n let obj = {\r\n 'txtEmailTo': \"\",\r\n 'txtEmailFrom': \"\",\r\n 'txtsmtpmail': \"\",\r\n 'txtport': \"\",\r\n 'txtmessage': \"\",\r\n };\r\n BlockUI();\r\n\r\n AxiosPost(sController + \"/SendMailTestSystem\", obj, (response) => {\r\n UnBlockUI();\r\n if (response.IsComplete === true) {\r\n SwAlert.Warning(\"ผล\", \"ส่งผ่าน\", () => { });\r\n } else {\r\n SwAlert.Warning(\"ผล ไม่ผ่าน\", response.sErrorMSG, () => { });\r\n }\r\n });\r\n };\r\n const FimSentMail = () => {\r\n return (\r\n \r\n {(formProps) => {\r\n return (\r\n
\r\n
Test Mail
\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n }\r\n \r\n )\r\n };\r\n\r\n return (\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 TestSentMail;","import React, { Fragment, useEffect, useState } from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nimport { FnBlock_UI, AxiosPost, ResultAPI, Process_System, AlertTitle, SwAlert, Encrypt, DialogConfirm } from './SysComponent/SystemComponent';\r\nconst useStyles = makeStyles((theme) => ({\r\n button: {\r\n margin: theme.spacing(1),\r\n width: \"150px\",\r\n opacity: 0.9,\r\n },\r\n pBody: {\r\n position: \"absolute\",\r\n top: \"48%\",\r\n left: \"39%\",\r\n },\r\n}));\r\nexport const TaskDailyMail = () => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n const [modalManual, setModalManual] = useState(false);\r\n const classes = useStyles();\r\n useEffect(() => {\r\n let params = new URLSearchParams(window.location.search)\r\n let ID = params.get('mode')+\"\";\r\n \r\n if (ID != \"MailTrackMail\") {\r\n setModalManual(true);\r\n } else {\r\n formTaskPowerShell();\r\n setModalManual(false);\r\n }\r\n\r\n });\r\n\r\n const formTaskPowerShell = () => {\r\n let obj = {\r\n nMode: 1\r\n }\r\n AxiosPost(\"TrackMail/SentDailyMail\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n window.close();\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }\r\n\r\n const formTaskManual = () => {\r\n let obj = {\r\n nMode: 2\r\n }\r\n DialogConfirm(() => {\r\n AxiosPost(\"TrackMail/SentDailyMail\", obj, (response) => {\r\n ResultAPI(false, response, null, () => {\r\n window.close();\r\n })\r\n }, () => { }, BlockUI, UnBlockUI)\r\n }, () => { }, \"ต้องการรัน Task Manual Daily Mail หรือไหม\");\r\n }\r\n return (\r\n {modalManual ===true &&
\r\n
\r\n
\r\n
\r\n \r\n Run Manual Daily Mail v 0.1.1\r\n {' '}\r\n\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
)\r\n}\r\nexport default TaskDailyMail;","import React, { Fragment } from 'react';\r\nimport { Button } from 'reactstrap';\r\nimport { FnBlock_UI, AxiosPost, SwAlert } from './SysComponent/SystemComponent';\r\nimport { Formik, Form } from \"formik\";\r\nimport InputFormItemLogin from './form/InputFormItemLogin'\r\nconst sController = \"TestPis\";\r\n\r\nconst TestPIS = () => {\r\n const { BlockUI, UnBlockUI } = FnBlock_UI();\r\n\r\n const fnInitialDataUser = {\r\n txtConnectionStrings: \"\"\r\n };\r\n\r\n const onSentTest = (formProps) => {\r\n let obj = {\r\n 'sConnectionStrings': formProps.txtConnectionStrings,\r\n 'nMode': 1\r\n };\r\n BlockUI();\r\n\r\n\r\n AxiosPost(sController + \"/SendTest\", obj, (response) => {\r\n console.log(\"response\",response);\r\n UnBlockUI();\r\n if (response.IsComplete === true) {\r\n SwAlert.Warning(\"ผล\", \"ต่อสำเร็จ\", () => { });\r\n } else {\r\n SwAlert.Warning(\"ผล ต่อไม่สำเร็จ\", response.sErrorMSG, () => { });\r\n }\r\n });\r\n };\r\n const onSentTestinCompany = (comID) => {\r\n let obj = {\r\n 'nCompanyIDP': comID,\r\n 'nMode': 2\r\n };\r\n BlockUI();\r\n\r\n AxiosPost(sController + \"/SendTest_AllSyatem\", obj, (response) => {\r\n UnBlockUI();\r\n console.log(\"response\",response);\r\n if (response.IsComplete === true) {\r\n SwAlert.Warning(\"ผล\", \"ต่อสำเร็จ\", () => { });\r\n } else {\r\n SwAlert.Warning(\"ผล ต่อไม่สำเร็จ\", response.sErrorMSG, () => { });\r\n }\r\n });\r\n };\r\n\r\n const FimSentPIS = () => {\r\n return (\r\n \r\n \r\n {(formProps) => {\r\n return (\r\n
\r\n
Test PIS
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n }\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n };\r\n\r\n return (\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 TestPIS;","import React, { useState, useEffect } from \"react\";\r\nimport packageJson from \"../package.json\";\r\nimport moment from \"moment\";\r\n\r\n\r\nconst buildDateGreaterThan = (latestDate, currentDate) => {\r\n const momLatestDateTime = moment(latestDate);\r\n const momCurrentDateTime = moment(currentDate);\r\n\r\n if (momLatestDateTime.isAfter(momCurrentDateTime)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\nfunction withClearCache(Component) {\r\n function ClearCacheComponent(props) {\r\n const [isLatestBuildDate, setIsLatestBuildDate] = useState(false);\r\n const REACT_APP_API_URL_File = process.env.REACT_APP_API_URL;\r\n useEffect(() => {\r\n\r\n fetch(REACT_APP_API_URL_File + \"meta.json\")\r\n .then((response) => response.json())\r\n .then((meta) => {\r\n const latestVersionDate = meta.buildDate;\r\n const currentVersionDate = packageJson.buildDate;\r\n // console.log(\"currentVersionDate\",currentVersionDate);\r\n // console.log(\"latestVersionDate\",latestVersionDate);\r\n const shouldForceRefresh = buildDateGreaterThan(\r\n latestVersionDate,\r\n currentVersionDate\r\n );\r\n if (shouldForceRefresh) {\r\n setIsLatestBuildDate(false);\r\n refreshCacheAndReload();\r\n } else {\r\n setIsLatestBuildDate(true);\r\n }\r\n });\r\n }, []);\r\n\r\n const refreshCacheAndReload = () => {\r\n if (caches) {\r\n // Service worker cache should be cleared with caches.delete()\r\n caches.keys().then((names) => {\r\n for (const name of names) {\r\n caches.delete(name);\r\n }\r\n });\r\n }\r\n // delete browser cache and hard reload\r\n window.location.reload(true);\r\n };\r\n\r\n return (\r\n \r\n {isLatestBuildDate ? : null}\r\n \r\n );\r\n }\r\n\r\n return ClearCacheComponent;\r\n}\r\n\r\nexport default withClearCache;\r\n","import * as React from \"react\";\r\nimport { Route, Switch, Router } from \"react-router\";\r\nimport { createBrowserHistory } from \"history\";\r\nimport ReduxBlockUi from \"react-block-ui/redux\";\r\nimport \"react-block-ui/style.css\";\r\nimport \"loaders.css/loaders.min.css\";\r\nimport Login from \"./components/Login\";\r\n//Front\r\nimport Layout_Front from './components/General/MasterPage/Layout_Front'\r\nimport CreateReport from './components/General/CreateReport'\r\nimport ContactUs from './components/General/ContactUs'\r\nimport EventToday from './components/General/EventTodayComponent/EventToday'\r\nimport EventRecord from './components/General/EventRecordComponent/EventRecord'\r\nimport Report from './components/General/Report'\r\nimport ReportAbnormal from './components/General/ReportAbnormal'\r\nimport ReportWeekly from './components/General/ReportWeekly'\r\nimport LoginAD from './components/LoginAD'\r\nimport Logout from './components/Logout'\r\nimport LoginBypass from './components/LoginBypass'\r\nimport LoginEP from './components/AZUREAD/LoginEP'\r\nimport loginAction from './components/loginAction'\r\nimport ReportMonthly from \"./components/General/ReportMonthly\";\r\nimport ReportYearly from './components/General/ReportYearly'\r\n//import Front from './components/General/MasterPage/Layout_Front';\r\n//brack\r\nimport Home from \"./components/Administrator/Home\";\r\nimport Company from \"./components/Administrator/Company\";\r\nimport CreateCompany from \"./components/Administrator/CreateCompany\";\r\nimport AreaStructure from \"./components/Administrator/AreaStructure\";\r\nimport Create_AreaStructure from \"./components/Administrator/Create_AreaStructure\";\r\nimport EventType from \"./components/Administrator/EventType\";\r\nimport Create_EventType from \"./components/Administrator/Create_EventType\";\r\nimport ReceiverGroup from \"./components/Administrator/ReceiverGroup\";\r\nimport Create_ReceiverGroup from \"./components/Administrator/Create_ReceiverGroup\";\r\nimport MailSetupMonitoring from \"./components/Administrator/MailSetupMonitoring\";\r\nimport UserPermission from \"./components/Administrator/UserPermission\";\r\nimport NotificationTime from \"./components/Administrator/NotificationTime\";\r\nimport NotificationCompany from \"./components/Administrator/NotificationCompany\";\r\nimport SetAdvanceEventDays from \"./components/Administrator/SetAdvanceEventDays\";\r\nimport LogExport from \"./components/Administrator/LogExport\";\r\nimport Create_UserPermission from \"./components/Administrator/Create_UserPermission\";\r\nimport Layout_MP_Back from \"./components/Administrator/MasterPage/Layout_MP_Back\";\r\nimport ImportUserData from \"./components/Administrator/Importdata/ImportUserData\";\r\nimport Manuel from \"./components/General/Manuel\"\r\nimport TestSentMail from \"./components/TestSentMail\";\r\nimport TaskDailyMail from \"./components/TaskDailyMail\";\r\nimport TestPIS from \"./components/TestPIS\";\r\n import withClearCache from \"./ClearCache\";\r\n const ClearCacheComponent = withClearCache(MainApp);\r\n\r\n// ClearCacheComponent();\r\nvar Loader = require(\"react-loaders\").Loader;\r\n\r\nconst baseUrl = document\r\n .getElementsByTagName(\"base\")[0]\r\n .getAttribute(\"href\") as string;\r\nconst history = createBrowserHistory({ basename: baseUrl });\r\n\r\nconst lstRoute = [\r\n {\r\n exact: true,\r\n path: \"/\",\r\n component: loginAction,\r\n layout: Layout_Front,\r\n }, {\r\n exact: true,\r\n path: \"/Task-Daily-Mail\",\r\n component: TaskDailyMail,\r\n layout: null,\r\n }, {\r\n exact: true,\r\n path: \"/Test-Sent-Mail\",\r\n component: TestSentMail,\r\n layout: Layout_Front,\r\n }, {\r\n exact: true,\r\n path: \"/Manual\",\r\n component: Manuel,\r\n layout: Layout_Front,\r\n }, {\r\n exact: true,\r\n path: \"/LoginEP\",\r\n component: LoginEP,\r\n layout: Layout_Front,\r\n }, {\r\n exact: true,\r\n path: \"/AzureAD\",\r\n component: LoginEP,\r\n layout: Layout_Front,\r\n }, {\r\n exact: true,\r\n path: \"/Action-Login\",\r\n component: Logout,\r\n layout: Layout_Front,\r\n }, {\r\n exact: true,\r\n path: \"/Logout\",\r\n component: Logout,\r\n layout: Layout_Front,\r\n }, {\r\n exact: true,\r\n path: \"/login\",\r\n component: Login,\r\n layout: Layout_Front,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Login\",\r\n component: Login,\r\n layout: Layout_Front,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Bypass\",\r\n component: LoginBypass,\r\n layout: Layout_Front,\r\n }, {\r\n exact: true,\r\n path: \"/Create-Report\",\r\n component: CreateReport,\r\n layout: Layout_Front,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Event-Today\",\r\n component: EventToday,\r\n layout: Layout_Front,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Event-Record\",\r\n component: EventRecord,\r\n layout: Layout_Front,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Report-Event\",\r\n component: Report,\r\n layout: Layout_Front,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Report-Abnormal\",\r\n component: ReportAbnormal,\r\n layout: Layout_Front,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Report-Event-Weekly\",\r\n component: ReportWeekly,\r\n layout: Layout_Front,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Report-Event-Monthly\",\r\n component: ReportMonthly,\r\n layout: Layout_Front,\r\n }, {\r\n path: \"/Report-Event-Yearly\",\r\n component: ReportYearly,\r\n layout: Layout_Front,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Contact-US\",\r\n component: ContactUs,\r\n layout: Layout_Front,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Admin-Home\",\r\n component: Home,\r\n layout: Layout_MP_Back,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Company\",\r\n component: Company,\r\n layout: Layout_MP_Back,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Create-Company\",\r\n component: CreateCompany,\r\n layout: Layout_MP_Back,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Area-Structure\",\r\n component: AreaStructure,\r\n layout: Layout_MP_Back,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Create-Area-Structure\",\r\n component: Create_AreaStructure,\r\n layout: Layout_MP_Back,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Event-Type\",\r\n component: EventType,\r\n layout: Layout_MP_Back,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Create-Event-Type\",\r\n component: Create_EventType,\r\n layout: Layout_MP_Back,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Receiver-Group\",\r\n component: ReceiverGroup,\r\n layout: Layout_MP_Back,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Create-Receiver-Group\",\r\n component: Create_ReceiverGroup,\r\n layout: Layout_MP_Back,\r\n },\r\n {\r\n exact: true,\r\n path: \"/MailSetup-Monitoring\",\r\n component: MailSetupMonitoring,\r\n layout: Layout_MP_Back,\r\n },\r\n {\r\n exact: true,\r\n path: \"/User-Permission\",\r\n component: UserPermission,\r\n layout: Layout_MP_Back,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Create-User-Permission\",\r\n component: Create_UserPermission,\r\n layout: Layout_MP_Back,\r\n },\r\n {\r\n exact: true,\r\n path: \"/NotificationTime\",\r\n component: NotificationTime,\r\n layout: Layout_MP_Back,\r\n }, \r\n {\r\n exact: true,\r\n path: \"/NotificationCompany\",\r\n component: NotificationCompany,\r\n layout: Layout_MP_Back,\r\n }, {\r\n exact: true,\r\n path: \"/SetAdvanceDays\",\r\n component: SetAdvanceEventDays,\r\n layout: Layout_MP_Back,\r\n },\r\n {\r\n exact: true,\r\n path: \"/LogExport\",\r\n component: LogExport,\r\n layout: Layout_MP_Back,\r\n },\r\n {\r\n exact: true,\r\n path: \"/Import-UserData\",\r\n component: ImportUserData,\r\n layout: Layout_MP_Back,\r\n }, {\r\n exact: true,\r\n path: \"/TestPIS\",\r\n component: TestPIS,\r\n layout: null,\r\n },\r\n];\r\n\r\nfunction MainApp(props) {\r\n return (\r\n }\r\n color=\"blue\"\r\n >\r\n {/* loader={} */}\r\n \r\n \r\n {lstRoute.map((o) => {\r\n return (\r\n \r\n {o.layout ? (\r\n \r\n \r\n \r\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 () => (\r\n \r\n);\r\n"],"sourceRoot":""}