{"version":3,"sources":["components/W2X/W29/W29F2305/W29F2305.js","components/W2X/W29/W29F2306/W29F2306.js","components/W2X/W29/W29F2308/W29F2308.js","components/W2X/W29/W29F2309/W29F2309.js","components/W2X/W29/W29F2300/W29F2300.js","components/W2X/W29/W29F2120/W29F2120.js","components/W3X/W38/W38F2000/W38F2000.js","components/W3X/W38/W38F2001/W38F2001.js","components/W3X/W38/W38F2002/W38F2002.js","components/W3X/W38/W38F2002/W38F2002General.js","components/W2X/W29/W29F3000/W29F3000.js"],"names":["useStyles","makeStyles","divAvatar","width","height","minWidth","minHeight","borderRadius","overflow","marginRight","divButton","display","justifyContent","dateInfo","alignItems","divText","fontWeight","FormID","Language","Config","language","_w84F3005PopupData","TransID","_w29F2306PopupData","dataFilterGrid","OrgChartID","SalEmpGroupID","DutyID","ShiftID","ProjectID","StatusID","EmployeeID","WorkingDayFrom","WorkingDayTo","_initFilter","skip","limit","_dataCboProjects","rows","total","_filterCboProjects","strSearch","_loading","W29F2305","props","_useSelector","useSelector","state","general","_useSelector$getCboDu","getCboDuty2","getCboDuty","_useSelector$getOrgCh","getOrgCharts","dataOrgCharts","getCboShifts","W29F2000","_useState","useState","_useState2","_slicedToArray","dataFilter","setDataFilter","_useState3","_useState4","dataGrid","setDataGrid","_useState5","_useState6","isLoadingDataGrid","setLoadingDataGrid","_useState7","_useState8","loading","_setLoading","_useState9","_useState10","showW84F3005Popup","setShowW84F3005Popup","_useState11","_useState12","showW29F2306Popup","setShowW29F2306Popup","_useState13","_useState14","cbSalEmpGroup","setCbSalEmpGroup","_useState15","_useState16","cbAppStatus","setCbAppStatus","_useState17","_useState18","rangeDate","setRangeDate","_useState19","_useState20","dataCboProjects","setDataCboProjects","_useState21","_useState22","dataCboEmployees","setDataCboEmployees","_useState23","_useState24","iPermission","setIPermission","w84F3005PopupData","useRef","w29F2306PopupData","filterGrid","filterUser","filterCboEmployees","dispatch","useDispatch","classes","setLoading","obj","_objectSpread","useEffect","loadPermission","callChildForm","keyExpr","data","onLoad","params","loadGrid","ID","onAction","e","onShowW29F2306Poppup","loadAppStatus","getSalEmpGroup","loadDataOrgChart","loadCboDuty","loadCboShifts","loadCboProjects","loadCboEmployees","getUrlParams","voucher_id","generalActions","isPer","_JSON$stringify","arguments","length","undefined","Mode","CriteriaID","JSON","stringify","current","W29F2305Actions","err","popup","show","_","get","error","DivisionID","getDivisionID","WorkDayType","AfterOTHours","W29f2000Actions","errors","isReset","param","HostID","search","concat","Type","handleChange","key","_ref","_e$value","_e$target","value","target","dateFrom","Array","isArray","dateTo","_defineProperty","mode","onChangePage","page","onChangePerPage","perPage","onSearch","renderEmpProfile","row","user","getUser","dateJoined","moment","DateJoined","isValid","format","React","createElement","className","UserImage","UserName","DepartmentName","CalendarNew","viewBox","style","paddingLeft","renderInfo","dangerouslySetInnerHTML","__html","DOMPurify","sanitize","Details","Reason","Typography","lineClamp","hoverTooltip","lang","Note","renderStatus","Status","displayExpr","renderAction","ButtonIcon","circular","viewType","name","disabled","onClick","onHistoryApproval","Message","notify","onDelete","renderGrid","useMemo","GridContainer","border","dataSource","totalItems","getHeightGrid","itemPerPage","skipPerPage","typePaging","allowColumnResizing","showRowLines","showBorders","showColumnLines","showColumnHeaders","hoverStateEnabled","onRowDblClick","Column","cellRender","alignment","Fragment","FormGroup","Filter","placeholder","showHeader","isUseDDCore","openOnFieldClick","renderFilter","Row","Col","xs","DateRangePicker","clearAble","controls","label","onChange","returnFormat","Dropdown","multiple","valueExpr","TreeView","allowSearch","id","multipleValueMode","parentID","onInput","onLoadMore","renderSelectedItem","Button","size","color","startIcon","ActionToolbar","title","W84F3005","open","onClose","W29F2306","isLoading","_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","resolve","reject","invoke","record","result","__await","then","unwrapped","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","_useTheme","useTheme","colors","spacing","theme","backgroundInfo","backgroundColor","info1","backgroundSuccess","success1","backgroundWarning","warning1","textField","margin","compose","connect","w29f2306Actions","bindActionCreators","W29F2306Actions","checkRule","isView","isAllNotEmpty","PreOTFrom","BetOTFrom","BetOTTo","AftOTTo","arrOT","arrTime","CPreOTFrom","CPreOTTo","CBetOTFrom","CBetOTTo","CAftOTFrom","CAftOTTo","errorMask","setErrorMask","isChange","setIsChange","insertColon","removeColon","formatDay","dateString","getOTHour","_asyncToGenerator","_callee","_params","_dataGrid$getOTKeyFro","_dataGrid$getOTKeyTo","action","getOTKeyFrom","getOTKeyTo","WorkingDay","_context","toLowerCase","AttendanceDate","includes","oldDataGrid","OTHour","_x","apply","_checkMaskRules","startsWith","_ref2","_e$target$value","onSave","_ref3","_callee2","saveMode","CPreOTHours","CBetOTHours","CAftOTHours","_removeColon","_removeColon2","_removeColon3","_removeColon4","_removeColon5","_removeColon6","_context2","save","Modal","ModalHeader","ModalBody","sm","md","arrInfoEmployee","EmployeeName","convertDate","Avatar","readOnly","src","UserPictureURL","map","_info$data","ShiftName","SPreOTFrom","SPreOTTo","SBetOTFrom","SBetOTTo","SAftOTFrom","SAftOTTo","OTType","OTInfo","renderDayInfo","uppercase","center","arrChips","arrIcons","counter","timeOn","timeOff","icon","chip","index","Chip","renderChips","success","warning","Divider","system","dark","keyTime","planFrom","planTo","planHour","planOTIsNotEmpty","keyFrom","keyTo","keyHour","position","InputMask","mask","maskChar","alwaysShowMask","formatChars","1","2","3","4","onBlur","_callee3","_context3","split","some","onKeyDown","keyCode","TextField","assign","variant","InputProps","HelperText","top","paddingTop","TextInput","ModalFooter","cellInfo","hexToRGBA","cellSuccess","cellWarning","inputTime","padding","white","dark6","borderBottomDark2","borderBottom","dark2","breakpoints","down","marginLeft","borderBottomDark","marginTime","W29F2308","location","dataCboAppStatus","_state$general$getCbo","_state$general","getCboAppStatus","loadingCboEmployees","setLoadingCboEmployees","openW29F2309","setOpenW29F2309","dataForm","setDataForm","ApprovalStatus","DateFrom","DateTo","filter","setFilter","approvalRef","paramFilterCboEmployees","_data$rows","_data$total","loadFormInfo","voucherID","cb","_Config$getDivisionID","VoucherID","approvalActions","dt","_location$state$vouch","_location$state","showPopup","onLoadCboFilter","loadCboAppStatus","filterChange","_data$value","_data$value2","_data$value$","_data$value3","_data$value$2","_data$value4","time","onOpenW29F2039","isLoad","cellRenderSuccess","OTFrom","OTTo","OTHours","cellRenderWarning","cellRenderText","text","classBorder","W29F2309","Approvals","ref","parentProps","singleClick","formInfoRender","_user$EmployeeName","_user$DepartmentID","_user$DepartmentName","_Config$helpers$conve","_user$DateJoined","_data$WorkingDay","_data$WorkDayType","_data$ShiftName","_data$PreOTHours","_data$BetOTHours","_data$AftOTHours","_data$CPreOTHours","_data$CBetOTHours","_data$CAftOTHours","indexTime","lg","xl","getInfoAvatar","getUserPicture","DepartmentID","helpers","flex","overflowX","columnSpacing","rowSpacing","PreOTTo","AftOTFrom","cellRenderInfo","PreOTHours","BetOTHours","AftOTHours","filterRender","onOpenLoaded","_e$skip","_e$limit","onSelectionChanged","_theme$colors","_theme$colors$line","col","borderLeft","line","leftColItem","actionToolbar","marginTop","brand24","grid","marginBottom","paddingBottom","memo","_dataCboEmployees$tot","errorMessage","isShowBetOT","setIsShowBetOT","dataOrgChart","setDataOrgChart","cboCboEmployeesLoading","setCboCboEmployeesLoading","cboOrgChartLoading","setCboOrgChartLoading","gridLoading","setGridLoading","isSaving","setIsSaving","isShowSelected","setIsShowSelected","refGrid","paramsPaging","refSelectedRowsData","refSelectedRowKeys","isSelectAll","isChangePage","isChangeShow","isFilter","timer","showDrawer","setShowDrawer","isLoadGrid","Skip","Limit","W29F2309Actions","resetData","currentSelectedRowKeys","selectedRowKeys","currentDeselectedRowKeys","component","totalCount","deselectAll","f","selectedRowsData","deselectRowsKey","indexOf","byKey","item","rowData","find","deselectRows","setDataSelectedRowKeys","onLoadDataFilter","evt","_evt$value","_evt$target","DayFrom","DayTo","_onClose","reload","IsBetweenOT","instance","_dataGrid","selectedRows","getSelectedRowKeys","isCheck","_step","dataKeys","d","_iterator","_createForOfIteratorHelper","s","n","_checkSelectedRowsKeys","_d$IsSelected","IsSelected","reference","selection","allowSelectAll","selectAllMode","showCheckBoxesMode","onContentReady","clearTimeout","setTimeout","selectRows","noDataText","pagerFullScreen","onEditorPreparing","editorOptions","onValueChanged","refresh","caption","dataField","dataType","columns","idx","visible","approvalStatus","arrCheckParams","arrApprovalParams","ApprovalLevel","ApprovalFlowID","checkParams","approvalParams","ApprovalNotes","arrParams","checkParamsLength","approvalTimeout","Math","ceil","isLastRequest","lastRequestHanlder","lastMessage","MsgAsk","showBorder","upperCase","allwaysTop","Checkbox","checked","subText","disabledRelevantValue","leftColScroll","maxHeight","overflowY","leftCol","W29F2300","getSalaryGroups","getCriteria","_useSelector2","getCboProjects","dataGridExtraByCriteriaID","setDataGridExtraByCriteriaID","criteriaID","setCriteriaID","cboDutyLoading","setCboDutyLoading","cboProjectLoading","setCboProjectLoading","_useState25","_useState26","cboSalEmpGroupLoading","setCboSalEmpGroupLoading","_useState27","_useState28","cboShiftLoading","setCboShiftLoading","_useState29","_useState30","_useState31","_useState32","cboAppStatusLoading","setCboAppStatusLoading","_useState33","_useState34","_useState35","_useState36","_useState37","_useState38","iPermissionByTab","setIPermissionByTab","_useState39","_useState40","setDataCboAppStatus","_useState41","_useState42","loadingCriteria","setLoadingCriteria","refBtn","conditionsSelectedRow","loadCriteria","W29F2300Actions","dataColumn","flatMap","m","GrpCriteria","reduce","isRenderStatus","String","dataStatus","sortBy","uniqBy","StatusName","_setDataFilter","setDisableBtnNotify","workingDayFrom","workingDayTo","onChangeTabItem","formID","FormIDPermission","Number","loadCboShift","cellRenderStatus","renderButton","_FormID","PopoverShowHideCol","buttonProps","onSubmit","repaint","_refBtn$current","isDisabled","hasSelectedRow","option","dataGridExtra","showUnitCount","defaultValue","Accordion","GrpCriteriaID","expand","AccordionSummary","GrpCriteriaName","AccordionDetails","TabContainer","tabIndex","direction","TabHeader","TabItem","labelProps","NumCriteria","CriteriaName","filterRow","showOperationChooser","columnAutoWidth","keyCompareChecked","parentType","lookup","bgRowEdit","background","verticalHeader","transform","transformOrigin","textPreLine","whiteSpace","txtRed","danger","W29F2120","dataCboPeriod","setDataCboPeriod","dataLeaveType","setDataLeaveType","dataColumns","setDataColumns","loadingProjects","setLoadingProjects","loadingGrid","setLoadingGrid","isWeek","setIsWeek","periodTime","setPeriodTime","filterCboProjects","dataDateByTrans","MinDate","MaxDate","isWeekChecked","isChangedRangeDate","refDataGrid","listCheckEmployeeUpdated","listFieldRemove","dataFieldEditing","GeneralActions","loadDateByTrans","TranMonth","TranYear","profile","maxDate","endOf","minDate","startOf","getFieldName","field","attendanceDate","loadTimeKeeping","AttendanceDateFrom","AttendanceDateTo","W29F2120Actions","_data$rows2","sortDate","sort","left","right","diff","locale","_loop","_infoEmployee","infoEmployee","NumLeave","DayShift","NightShift","FirstSolar","RopeAccess","TTMB","TimeOn","TimeOff","IsEdit","ReadOnly","QuantityLeave","idxEmployee","findIndex","_sortDate$i","dayOfWeek","isRorateText","isCellDecimal","isPreLineText","isCellTime","parse","onReset","getListEmployee","dataEmployee","_loop2","_EmployeeID","employeeUpdated","_i","_Object$entries","entries","_Object$entries$_i","attendanceDateCell","_key$split","keyRemoveTime","saveHistory","_historyMaster$get","_oldDataGrid","captions","historyMaster","Employee","History","_dataOldEmployee","options","dataCompare","ModuleID","TransactionID","TransactionName","itemRender","oldData","employee","_h","import","_x3","_data$","PeriodTime","loadCboPeriod","handleFilterChange","handleHeaderFilter","_ref4","_e$value2","_e$target3","_dataDateByTrans$curr","_dataDateByTrans$curr2","subtract","_dataForm","_dataDateByTrans$curr3","_dataDateByTrans$curr4","add","_dataTo","headerCellRenderNumLeave","column","getClassName","className1","substring","className2","onEditingStart","fieldReadOnly","cancel","onCellPrepared","rowType","_e$cellElement$classL","fieldIsEdit","cellElement","classList","_toConsumableArray","_e$column","_e$cellElement$classL2","_e$cellElement$classL3","customizeText","Intl","NumberFormat","onRowUpdating","newData","_listCheckEmployeeUpd","fieldFirstSolar","fieldRopeAccess","fieldTTMB","gridEmployee","rowAlternationEnabled","editing","refreshMode","allowUpdating","startEditAction","onRowUpdated","allowEditing","fixed","cssClass","idxC","_col$dataField","_data","_cellElement$classLis","getCellElement","rowIndex","listNumLeave","join","cellRenderNumLeave","headerCellRender","colTime","idxT","maskRules","A","B","C","D","onFocusOut","event","parseInt","replace","firstLetter","editCellRender","NumberInput","disabledNegative","decimalDigit","decimalSymbol","thousandSeparator","allowZero","vl","setValue","Summary","TotalItem","displayFormat","summaryType","valueFormat","Loading","ButtonGeneral","typeButton","saveEditData","dataUpdated","_x2","min","max","_e$target2","_d$ColorLeave","_d$LeaveName","ColorLeave","LeaveName","W38F2000","_React$Component","_inherits","_super","_createSuper","_this","_classCallCheck","getPermission","setState","loadDataGrid","onChangePageProfile","browserHistory","pathname","getRootPath","Image","require","VoucherDate","TrainingCourseName","ProjectName","ProNumber","FromDate","ToDate","ProCost","ProCurrencyName","ApproverName","DepartmentIDApp","ApprovedDate","AppNote","onAdd","onView","AppStatusID","ProposalID","ProBatchID","W38F2000Actions","deleteGrid","onViewHistory","showW84F3005","isEmpty","FromProNumber","ToProNumber","disabledFilter","ToProCost","FromProCost","_this$props","getCboTraining","_this$state","employeeLoading","DateBoxPicker","dateBoxProps","useMaskBehavior","showClearButton","Combo","LoadMore","stylingMode","onInputChanged","TrainingCourseID","inputComponent","NumberFormatCustom","fullWidth","helperText","ButtonCustom","btnFilter","componentDidMount","TrainingFieldID","message","_this$state2","_this$filter","getCboEmployees","filterCboTraining","_createClass","prevProps","prevState","snapshot","_this2","this","_this3","_this$state3","_this$state3$w84F","_this$filter2","textTransform","onDbCellClick","Component","_React$Component2","_super2","_this$props2","inputRef","_objectWithoutProperties","_excluded","getInputRef","onValueChange","withStyles","fontSize","divDateText","W38F2001","_Component","loadCboDepartments","CompanyID","getCboDepartments","loadCboTeams","getCboTeam","loadCurrency","getLoadCurrency","loadCboTrainingField","_this$filterCboTraini","filterCboTrainingField","W38F2001Actions","dataCboTrainingField","loadTrainingCourse","isFirst","_this$filterTrainingC","filterTrainingCourse","formData","dataTrainingCourse","loadTrainingCourseDetail","DateRangeForm","TrainningEmpName","ProAverageCosts","toFixed","CurrencyID","ProCurrencyID","Content","TrainingMonthNum","TrainingPeriod","TrainingPurpose","startDate","Date","endDate","TrainingPurposeRef","ContentRef","nameField","fieldJustChanged","splice","isUpdated","ProExchangeRate","ExchangeRate","ProCCost","TrainingCourse","onChangeDate","ranges","status","_getAttachments","listAttachments","getFileInfomations","attachments","dataOldAttachments","arrAttachment","att","URL","url","FileName","fileName","FileSize","fileSize","FileExt","fileExt","onAttachment","attRef","onUploading","uploading","onChangeAttachments","uploadedFiles","deletedFiles","deletedFile","_arrRemove","AttachmentID","loadAttachments","getInfo","KeyID","TableName","getAttachmentsByTransID","loadForm","_this$getInfo2","response","TrainingFieldName","IsInternal","TeamID","ProNote","_this$getInfo3","selectedEmployeeID","setStateErrorText","_this$getInfo4","HREmployeeID","_DateRangeForm$","validateRules","rules","validateFrom","MForm","formValidation","arrAttachments","getHRTransMonth","getHRTransYear","notifyBeforeSave","formLoading","msg","onBack","getDefaultDepartment","u","resetProps","flag","nextProps","UNSAFE_componentWillMount","_this$getInfo5","UNSAFE_componentWillReceiveProps","openEmployeeSelect","_this$state4","NotJoinTrain","showEmployeeSelect","dataDefaults","isLoaded","closeEmployeeSelect","onSelectedEmployee","EmployeeIDs","trainingDataEmployeeID","removeItem","goBack","DutyName","GridActionBar","IconButton","aria-label","Icons","loadingTrainingField","loadingTrainingCourse","expandedFirst","dateFromTo","upload","createRef","_this$state5","showEmployeeList","W09F6000","onCheckedNotJoinTrain","onChosen","InlineSVG","typebutton","ChevronRightIcon","ChevronLeftIcon","panel","shrink","required","FormControl","InputLabel","InputLabelProps","Boolean","_e","DateRangeBox","showClearIcon","showDateDisplay","inputProps","multiline","ExpansionPanel","expanded","boxShadow","ExpansionPanelSummary","ExpansionPanelDetails","bottom","cursor","zIndex","Attachments","showButton","files","maxLength","onChanged","close","fixedPosition","isMobile","float","_Component2","cboTrainingField","cboTrainingCourse","getLoadEducation","transition","panelForm","opacity","hiddenOpacity","dateRanger","withTheme","W38F2002","onDrawerClosed","getFormInfo","renderFormInfo","W38F2002General","getGridApprovals","cboEmployeeLoading","getCboStatus","Label","Search","getGridApproval","refs","allowHistoryApproval","showFilters","approvals","getAttachments","getHistorys","ApprovalActions","heading","maxWidth","palette","primary","main","test","TimeTrain","IsInternalName","LabelText","allowPadding","focused","toUpperCase","W29F3000","_React$PureComponent","loadCboReports","w29f3000Actions","getCboReports","ReportTypeID","dataReports","Project","filterCboProject","dataHandOver","loadCboHandOver","getCboHandOver","getCboPeriod","dataPeriod","loadDateData","PeriodItem","getDateData","stateDate","_setFormData","exportExcelTemplate","isPreview","_dataForm$PeriodItem","ReportID","Report","TemplateURL","getCDNPath","validateForm","filters","UserID","HandOverID","token","isPDF","Params","code","downloadURL","downloadExt","downloadName","showPreview","document","getElementById","click","previewExcelTemplate","env","api","k","encodeURIComponent","AttendanceVoucherID","onClosePreview","loadedOnPreview","blobUrl","exportLoading","dateLoading","_loadPermission","HandOverName","searchExpr","DateData","Export","Preview","CloseIcon","previewLoading","view","download","href","PureComponent","W29F3000Actions","hiddenPreview"],"mappings":"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","file":"static/js/main~b85d9c7b.5d6f0bf4.chunk.js","sourcesContent":["import React, { useEffect, useState, useRef, useMemo } from 'react';\r\nimport ActionToolbar from \"../../../common/toolbar/action-toolbar\";\r\nimport Config from \"../../../../config\";\r\nimport GridContainer from \"../../../grid-container/grid-container\";\r\nimport { DateRangePicker, Dropdown, Button, Row, Col, FormGroup, Typography, ButtonIcon, TreeView } from 'diginet-core-ui/components';\r\nimport Filter from \"../../../filter/filter\";\r\nimport { makeStyles } from \"diginet-core-ui/theme\";\r\nimport _ from 'lodash';\r\nimport UserImage from \"../../../common/user/user-image\";\r\nimport { Column } from 'devextreme-react/data-grid';\r\nimport moment from 'moment';\r\nimport UserName from \"../../../common/user/user-name\";\r\nimport { CalendarNew } from 'diginet-core-ui/icons';\r\nimport Status from \"../../../common/status/status\";\r\nimport * as W29F2305Actions from \"../../../../redux/W2X/W29F2305/W29F2305_actions\";\r\nimport * as W29f2000Actions from \"../../../../redux/W2X/W29F2000/W29F2000_actions\";\r\nimport * as generalActions from \"../../../../redux/general/general_actions\";\r\nimport W84F3005 from \"../../../W8X/W84/W84F3005/W84F3005\";\r\nimport W29F2306 from \"../../../W2X/W29/W29F2306/W29F2306\";\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport DOMPurify from \"dompurify\";\r\n\r\nconst useStyles = makeStyles(() => ({\r\n divAvatar: {\r\n width: 46,\r\n height: 46,\r\n minWidth: 46,\r\n minHeight: 46,\r\n borderRadius: '50%',\r\n overflow: 'hidden',\r\n marginRight: 8\r\n },\r\n divButton: {\r\n display: \"flex\",\r\n justifyContent: \"center\"\r\n },\r\n dateInfo: {\r\n display: \"flex\",\r\n alignItems: \"center\"\r\n },\r\n divText: {\r\n fontWeight: 500,\r\n },\r\n}));\r\nconst FormID = \"W29F2305\";\r\nconst Language = Config.language || \"84\";\r\n\r\nconst _w84F3005PopupData = {\r\n TransID: null\r\n};\r\nconst _w29F2306PopupData = {\r\n TransID: null\r\n};\r\n\r\nconst dataFilterGrid = {\r\n OrgChartID: \"\",\r\n SalEmpGroupID: \"\",\r\n DutyID: \"\",\r\n ShiftID: \"\",\r\n ProjectID: \"\",\r\n StatusID: null,\r\n EmployeeID: \"\",\r\n WorkingDayFrom: null,\r\n WorkingDayTo: null,\r\n}\r\n\r\nconst _initFilter = {\r\n skip: 0,\r\n limit: 20\r\n};\r\n\r\nconst _dataCboProjects = {\r\n rows: [],\r\n total: 0,\r\n};\r\n\r\nconst _filterCboProjects = {\r\n strSearch: \"\",\r\n skip: 0,\r\n limit: 50,\r\n};\r\n\r\nconst _loading = {\r\n OrgChartID: false,\r\n SalEmpGroupID: false,\r\n DutyID: false,\r\n ShiftID: false,\r\n ProjectID: false,\r\n StatusID: false,\r\n EmployeeID: false,\r\n}\r\n\r\nconst W29F2305 = (props) => {\r\n\r\n const { getCboDuty2: getCboDuty = [], getOrgCharts: dataOrgCharts = [] } = useSelector(state => state?.general || {});\r\n const { getCboShifts } = useSelector(state => state?.W29F2000 || {});\r\n const [dataFilter, setDataFilter] = useState(dataFilterGrid);\r\n const [dataGrid, setDataGrid] = useState({ rows: [], total: 10 });\r\n const [isLoadingDataGrid, setLoadingDataGrid] = useState(false);\r\n const [loading, _setLoading] = useState(_loading);\r\n const [showW84F3005Popup, setShowW84F3005Popup] = useState(false);\r\n const [showW29F2306Popup, setShowW29F2306Popup] = useState(false);\r\n\r\n const [cbSalEmpGroup, setCbSalEmpGroup] = useState([]);\r\n const [cbAppStatus, setCbAppStatus] = useState([]);\r\n const [rangeDate, setRangeDate] = useState([]);\r\n const [dataCboProjects, setDataCboProjects] = useState(_dataCboProjects);\r\n const [dataCboEmployees, setDataCboEmployees] = useState(_dataCboProjects);\r\n const [iPermission, setIPermission] = useState(0);\r\n\r\n const w84F3005PopupData = useRef(_w84F3005PopupData);\r\n const w29F2306PopupData = useRef(_w29F2306PopupData);\r\n\r\n const filterGrid = useRef(_initFilter);\r\n const filterUser = useRef(_filterCboProjects);\r\n const filterCboEmployees = useRef(_filterCboProjects);\r\n\r\n\r\n const dispatch = useDispatch();\r\n const classes = useStyles();\r\n\r\n const setLoading = (obj) => {\r\n _setLoading({ ...loading, ...obj });\r\n };\r\n\r\n useEffect(() => {\r\n loadPermission();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n useEffect(() => {\r\n Config.callChildForm({\r\n FormID,\r\n keyExpr: \"TransID\",\r\n data: dataGrid && dataGrid.rows ? dataGrid.rows : [],\r\n onLoad: (params) => loadGrid(params && params.ID),\r\n onAction: (e, data) => {\r\n onShowW29F2306Poppup(data, \"IconView\")\r\n },\r\n }, props);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n });\r\n\r\n useEffect(() => {\r\n if (iPermission) {\r\n // loadGrid();\r\n loadAppStatus();\r\n getSalEmpGroup();\r\n loadDataOrgChart();\r\n loadCboDuty();\r\n loadCboShifts();\r\n loadCboProjects();\r\n loadCboEmployees();\r\n\r\n const { voucher_id } = Config.getUrlParams(props);\r\n if (!voucher_id) loadGrid();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [iPermission]);\r\n\r\n const loadPermission = () => {\r\n dispatch(generalActions.getPermission('W29F2305', (isPer) => {\r\n setIPermission(isPer);\r\n })\r\n );\r\n };\r\n\r\n const loadGrid = (TransID = \"\") => {\r\n const params = {\r\n TransID: TransID,\r\n FormID,\r\n Mode: 0,\r\n CriteriaID: \"\",\r\n WorkingDayFrom: dataFilter.WorkingDayFrom,\r\n WorkingDayTo: dataFilter.WorkingDayTo,\r\n OrgChartID: JSON.stringify(dataFilter.OrgChartID) ?? \"\",\r\n SalEmpGroupID: dataFilter.SalEmpGroupID,\r\n DutyID: dataFilter.DutyID,\r\n ProjectID: dataFilter.ProjectID,\r\n ShiftID: dataFilter.ShiftID,\r\n StatusID: dataFilter.StatusID || null,\r\n EmployeeID: dataFilter.EmployeeID,\r\n skip: filterGrid.current.skip,\r\n limit: filterGrid.current.limit,\r\n };\r\n\r\n setLoadingDataGrid(true);\r\n dispatch(\r\n W29F2305Actions.loadGridData(params, (err, data) => {\r\n setLoadingDataGrid(false);\r\n if (err) {\r\n Config.popup.show(\"ERROR\", err);\r\n return false;\r\n } else if (data) {\r\n const rows = _.get(data, \"rows\", []);\r\n const total = _.get(data, \"total\", 0);\r\n setDataGrid({ rows, total });\r\n }\r\n }))\r\n };\r\n\r\n const getSalEmpGroup = () => {\r\n setLoading({ SalEmpGroupID: true })\r\n dispatch(\r\n W29F2305Actions.getSalEmpGroup((err, data) => {\r\n setLoading({ SalEmpGroupID: false })\r\n if (err) {\r\n Config.popup.show(\"ERROR\", err);\r\n return false;\r\n } else if (data) {\r\n setCbSalEmpGroup(data)\r\n }\r\n }))\r\n };\r\n\r\n const loadAppStatus = () => {\r\n const params = {\r\n FormID,\r\n Language,\r\n }\r\n setLoading({ StatusID: true })\r\n dispatch(W29F2305Actions.getAppStatus(params, (err, data) => {\r\n setLoading({ StatusID: false })\r\n if (err) {\r\n Config.popup.show(\"ERROR\", err);\r\n return false;\r\n } else if (data) {\r\n setCbAppStatus(data)\r\n }\r\n }))\r\n };\r\n\r\n const loadDataOrgChart = () => {\r\n setLoading({ OrgChartID: true })\r\n dispatch(generalActions.getOrgCharts({}, (error) => {\r\n setLoading(false);\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n }));\r\n };\r\n\r\n const loadCboDuty = () => {\r\n setLoading({ DutyID: true })\r\n dispatch(generalActions.getCboDuty2(error => {\r\n setLoading({ DutyID: false })\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n }));\r\n };\r\n\r\n const loadCboShifts = () => {\r\n const params = {\r\n DivisionID: Config.getDivisionID(),\r\n OrgChartID: dataFilter.OrgChartID,\r\n WorkDayType: \"\",\r\n AfterOTHours: 0,\r\n Language,\r\n ProjectID: dataFilter.ProjectID,\r\n };\r\n setLoading({ ShiftID: true })\r\n dispatch(W29f2000Actions.getCboShift(params, (errors) => {\r\n setLoading({ ShiftID: false })\r\n if (errors) {\r\n Config.popup.show(\"ERROR\", errors);\r\n return false;\r\n }\r\n }))\r\n };\r\n\r\n const loadCboProjects = isReset => {\r\n const param = {\r\n HostID: \"\",\r\n FormID,\r\n Language,\r\n skip: filterUser.skip,\r\n limit: filterUser.limit,\r\n search: filterUser.strSearch,\r\n };\r\n setLoading({ ProjectID: true })\r\n\r\n dispatch(generalActions.getCboProjects(param, (error, data) => {\r\n setLoading({ ProjectID: false })\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n } else if (data) {\r\n const rows = data && data.rows ? data.rows : data;\r\n const total = data && data.total ? data.total : data.length;\r\n setDataCboProjects({\r\n rows: isReset ? rows : dataCboProjects.rows.concat(rows),\r\n total: total\r\n })\r\n }\r\n }));\r\n };\r\n\r\n const loadCboEmployees = (isReset) => {\r\n const params = {\r\n Type: \"EmployeeID\",\r\n FormID,\r\n Language,\r\n skip: filterCboEmployees.current.skip,\r\n limit: filterCboEmployees.current.limit,\r\n search: filterCboEmployees.current.strSearch\r\n };\r\n setLoading({ EmployeeID: true })\r\n dispatch(generalActions.getCboEmployees(params, (error, data) => {\r\n setLoading({ EmployeeID: false })\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n if (data) {\r\n const rows = data && data.rows ? data.rows : data;\r\n const total = data && data.total ? data.total : data.length;\r\n setDataCboEmployees({\r\n rows: isReset ? rows : dataCboEmployees.rows.concat(rows),\r\n total: total\r\n })\r\n }\r\n }))\r\n };\r\n\r\n\r\n const handleChange = (key, e) => {\r\n if (!key) return false;\r\n const value = e?.value ?? e?.target?.value ?? \"\";\r\n if (key === \"RangePicker\") {\r\n const dateFrom = Array.isArray(value) ? value[0] : null;\r\n const dateTo = Array.isArray(value) ? value[1] : null;\r\n setDataFilter({\r\n ...dataFilter,\r\n WorkingDayFrom: dateFrom,\r\n WorkingDayTo: dateTo\r\n });\r\n setRangeDate([dateFrom, dateTo]);\r\n } else {\r\n setDataFilter({ ...dataFilter, [key]: value })\r\n }\r\n };\r\n\r\n const onHistoryApproval = (data = {}) => {\r\n w84F3005PopupData.current.TransID = data.TransID;\r\n setShowW84F3005Popup(true);\r\n };\r\n\r\n const onShowW29F2306Poppup = (data = {}, key) => {\r\n w29F2306PopupData.current.TransID = data?.TransID;\r\n w29F2306PopupData.current.EmployeeID = data?.EmployeeID;\r\n switch (key) {\r\n case \"IconView\":\r\n if (data?.StatusID === 0 || data?.StatusID === 3) {\r\n w29F2306PopupData.current.mode = \"edit\"\r\n } else {\r\n w29F2306PopupData.current.mode = \"view\"\r\n }\r\n break;\r\n case \"doubleClick\":\r\n w29F2306PopupData.current.mode = \"view\"\r\n break;\r\n default:\r\n break;\r\n }\r\n setShowW29F2306Popup(true);\r\n };\r\n\r\n const onDelete = (e) => {\r\n if (!e) return false;\r\n const { data } = e.row;\r\n const params = {\r\n FormID,\r\n Mode: 2,\r\n TransID: data?.TransID || \"\"\r\n };\r\n Config.popup.show('YES_NO', Config.lang(\"Ban_co_chac_chan_xoa\"),\r\n () => {\r\n dispatch(\r\n W29F2305Actions.deleteDaTa(params, (errors, data) => {\r\n if (errors) {\r\n Config.popup.show('ERROR', errors);\r\n return false;\r\n }\r\n else if (data) {\r\n if(data.Status === 1) {\r\n Config.popup.show('INFO', data.Message);\r\n return false;\r\n }\r\n else if(data.Status === 0) {\r\n Config.notify.show('success', Config.lang(\"Xoa_thanh_cong\"), 2000);\r\n loadGrid();\r\n }\r\n\r\n }\r\n }))\r\n });\r\n };\r\n\r\n const onChangePage = (page) => {\r\n filterGrid.current.skip = page * filterGrid.current.limit;\r\n loadGrid();\r\n };\r\n\r\n const onChangePerPage = (perPage) => {\r\n filterGrid.current.skip = 0;\r\n filterGrid.current.limit = perPage;\r\n loadGrid();\r\n };\r\n\r\n const onSearch = () => {\r\n loadGrid();\r\n };\r\n const renderFilter = () => {\r\n return (\r\n {\r\n return (\r\n <>\r\n \r\n \r\n \r\n handleChange(\"RangePicker\", e)}\r\n placeholder={\"DD/MM/YY - DD/MM/YY\"}\r\n returnFormat={\"YYYY-MM-DD\"}\r\n />\r\n \r\n \r\n handleChange(\"OrgChartID\", e)}\r\n >\r\n handleChange(\"OrgChartID\", e)}\r\n />\r\n \r\n \r\n \r\n handleChange(\"SalEmpGroupID\", e)}\r\n loading={loading.SalEmpGroupID}\r\n dataSource={cbSalEmpGroup}\r\n value={dataFilter.SalEmpGroupID}\r\n />\r\n \r\n \r\n handleChange(\"DutyID\", e)}\r\n dataSource={getCboDuty}\r\n value={dataFilter.DutyID}\r\n />\r\n \r\n \r\n handleChange(\"ProjectID\", e)}\r\n onInput={(e) => {\r\n filterUser.current.strSearch = e.target.value;\r\n filterUser.current.skip = 0;\r\n loadCboProjects(true);\r\n }}\r\n onLoadMore={(e) => {\r\n filterUser.current.skip = e.skip;\r\n filterUser.current.limit = e.limit;\r\n loadCboProjects();\r\n }}\r\n />\r\n \r\n \r\n handleChange(\"ShiftID\", e)}\r\n dataSource={getCboShifts}\r\n value={dataFilter.ShiftID}\r\n />\r\n \r\n \r\n handleChange(\"StatusID\", e)}\r\n loading={loading.StatusID}\r\n dataSource={cbAppStatus}\r\n value={dataFilter.StatusID}\r\n />\r\n \r\n \r\n handleChange(\"EmployeeID\", e)}\r\n onInput={(e) => {\r\n filterCboEmployees.current.strSearch = e.target.value;\r\n filterCboEmployees.current.skip = 0;\r\n loadCboEmployees(true);\r\n }}\r\n onLoadMore={(e) => {\r\n filterCboEmployees.current.skip = e.skip;\r\n filterCboEmployees.current.limit = e.limit;\r\n loadCboEmployees();\r\n }}\r\n />\r\n \r\n \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 renderEmpProfile = e => {\r\n const { data } = e.row;\r\n const user = Config.getUser({ EmployeeID: data?.EmployeeID || \"\" });\r\n const dateJoined = user ? moment(user.DateJoined).isValid() ? moment(user.DateJoined).format('DD/MM/YYYY') : user.DateJoined : \"\";\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{user && user.DepartmentName ? user.DepartmentName : \"\"}
\r\n
\r\n \r\n
\r\n {user && dateJoined}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n const renderInfo = e => {\r\n const { data } = e.row;\r\n return (\r\n
\r\n
\r\n {data.Reason && (\r\n \r\n {Config.lang(\"Ly_do\")}: {data.Reason}\r\n \r\n )}\r\n {data.Note && (\r\n \r\n {Config.lang(\"Ghi_chu\")}: {data.Note}\r\n \r\n )}\r\n
\r\n );\r\n };\r\n\r\n const renderStatus = e => {\r\n const { data } = e.row;\r\n return ;\r\n };\r\n\r\n const renderAction = e => {\r\n const { data } = e.row;\r\n return (\r\n
\r\n onHistoryApproval(data)}\r\n />\r\n onShowW29F2306Poppup(data, \"IconView\")}\r\n />\r\n onDelete(e)}\r\n />\r\n
\r\n );\r\n };\r\n\r\n const renderGrid = useMemo(() => {\r\n return (\r\n onShowW29F2306Poppup(e.data, \"doubleClick\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )\r\n // eslint-disable-next-line\r\n }, [dataGrid, isLoadingDataGrid, filterGrid]);\r\n return (\r\n <>\r\n \r\n
{renderFilter()}
\r\n \r\n setShowW84F3005Popup(false)}\r\n FormID={FormID}\r\n TransID={w84F3005PopupData.current.TransID} />\r\n\r\n {showW29F2306Popup && {\r\n setShowW29F2306Popup(false);\r\n isLoading && loadGrid();\r\n }}\r\n FormID={FormID}\r\n TransID={w29F2306PopupData.current.TransID}\r\n EmployeeID={w29F2306PopupData.current.EmployeeID}\r\n mode={w29F2306PopupData.current.mode}\r\n iPermission={iPermission}\r\n />}\r\n {renderGrid}\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default W29F2305;\r\n","/**\r\n * @copyright 2022 @ DigiNet\r\n * @author THANHAN\r\n * @create 10/10/2022\r\n * @Example\r\n */\r\n\r\nimport React, { useState, useEffect } from 'react'\r\nimport Config from \"../../../../config\";\r\nimport { TextField } from \"@material-ui/core\";\r\nimport InputMask from \"react-input-mask\";\r\nimport { useTheme, makeStyles } from \"diginet-core-ui/theme\";\r\nimport {\r\n Row,\r\n Col,\r\n Modal,\r\n ModalHeader,\r\n ModalBody,\r\n ModalFooter,\r\n Button,\r\n TextInput,\r\n Chip,\r\n Typography,\r\n Divider,\r\n Avatar,\r\n HelperText\r\n} from \"diginet-core-ui/components\";\r\nimport { bindActionCreators, compose } from \"redux\";\r\nimport { connect } from \"react-redux\";\r\nimport * as W29F2306Actions from \"../../../../redux/W2X/W29F2306/W29F2306_actions\";\r\nimport * as generalActions from \"../../../../redux/general/general_actions\";\r\nimport moment from 'moment';\r\nconst { colors, spacing } = useTheme();\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n backgroundInfo: {\r\n backgroundColor: theme.colors.info1,\r\n },\r\n backgroundSuccess: {\r\n backgroundColor: theme.colors.success1,\r\n },\r\n backgroundWarning: {\r\n backgroundColor: theme.colors.warning1,\r\n },\r\n textField: {\r\n margin: `-${spacing(2)}px 0 ${spacing(2)}px 0`,\r\n width: 75,\r\n }\r\n}))\r\n\r\nconst W29F2306 = (props) => {\r\n const classes = useStyles();\r\n const {\r\n open,\r\n mode,\r\n EmployeeID,\r\n TransID,\r\n onClose,\r\n iPermission\r\n } = props;\r\n\r\n let checkRule = {};\r\n const [dataGrid, setDataGrid] = useState({});\r\n const isView = mode === \"view\";\r\n let isAllNotEmpty =\r\n (dataGrid?.PreOTFrom && dataGrid?.PreOTFrom) ||\r\n (dataGrid?.BetOTFrom && dataGrid?.BetOTTo) ||\r\n (dataGrid?.AftOTTo && dataGrid?.AftOTTo);\r\n\r\n const arrOT = [\"TCT\", \"TCG\", \"TCS\"];\r\n const arrTime = [\"Pre\", \"Bet\", \"Aft\"];\r\n const [errorMask, setErrorMask] = useState({\r\n CPreOTFrom: false,\r\n CPreOTTo: false,\r\n CBetOTFrom: false,\r\n CBetOTTo: false,\r\n CAftOTFrom: false,\r\n CAftOTTo: false,\r\n });\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isChange, setIsChange] = useState(false);\r\n\r\n\r\n const insertColon = (data) => { // chuyển các chuỗi gio` dạng 1234 => 12:34\r\n if (!data) return null;\r\n else {\r\n return moment(data, \"HHmm\").format(\"HH:mm\");\r\n }\r\n };\r\n\r\n const removeColon = (data) => { // chuyển các chuỗi gio` dạng 12:34 => 1234\r\n if (!data) return null;\r\n else {\r\n return moment(data, \"HH:mm\").format(\"HHmm\");\r\n }\r\n }\r\n\r\n const formatDay = (dateString) => { //format from DD/MM/YYYY to YYYY-MM-DD\r\n if (!dateString) return null;\r\n else {\r\n return moment(dateString, \"DD/MM/YYYY\").format(\"YYYY-MM-DD\");\r\n };\r\n };\r\n\r\n const renderInfo = () => {\r\n const user = Config.getUser({ EmployeeID });\r\n const arrInfoEmployee = [\r\n {\r\n title: \"Nhan_vien\",\r\n data: user?.EmployeeName,\r\n },\r\n {\r\n title: \"Phong_ban\",\r\n data: user?.DepartmentName,\r\n },\r\n {\r\n title: \"Ngay_vao_lam\",\r\n data: Config.convertDate(user?.DateJoined, null, \"DD/MM/YYYY\"),\r\n }];\r\n\r\n return (\r\n
\r\n \r\n
\r\n {\r\n arrInfoEmployee.map((info) => {\r\n return (\r\n
\r\n \r\n {Config.lang(info?.title)}:\r\n \r\n \r\n {info?.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 const renderDayInfo = () => {\r\n const {\r\n WorkingDay,\r\n WorkDayType,\r\n ShiftName,\r\n SPreOTFrom,\r\n SPreOTTo,\r\n SBetOTFrom,\r\n SBetOTTo,\r\n SAftOTFrom,\r\n SAftOTTo,\r\n } = dataGrid;\r\n\r\n return !loading ? (\r\n
\r\n \r\n {`${WorkingDay ? `${WorkingDay} - ` : \"\"}`}{WorkDayType}\r\n \r\n \r\n {ShiftName ?? \"\"}\r\n \r\n {arrOT.map((OTType, i) => {\r\n let OTInfo = \"\";\r\n switch (i) {\r\n case 0:\r\n if (!SPreOTFrom && !SPreOTTo) {\r\n break;\r\n }\r\n OTInfo = `${insertColon(SPreOTFrom)} - ${insertColon(SPreOTTo)}`;\r\n break;\r\n case 1:\r\n if (!SBetOTFrom && !SBetOTTo) {\r\n break;\r\n }\r\n OTInfo = `${insertColon(SBetOTFrom)} - ${insertColon(SBetOTTo)}`;\r\n break;\r\n case 2:\r\n if (!SAftOTFrom && !SAftOTTo) {\r\n break;\r\n }\r\n OTInfo = `${insertColon(SAftOTFrom)} - ${insertColon(SAftOTTo)}`;\r\n break;\r\n default:\r\n break;\r\n }\r\n return (\r\n \r\n {`${OTInfo ? `${OTType}: ${OTInfo}` : \"\"}`}\r\n \r\n )\r\n })}\r\n
\r\n ) : \"\"\r\n };\r\n\r\n const renderChips = () => {\r\n const arrChips = [];\r\n const arrIcons = [\"OneSquare\", \"TwoSquare\", \"ThreeSquare\", \"FourSquare\", \"FiveSquare\"];\r\n let counter = 0; // number of chips\r\n for (let i = 1; i <= 5; i++) {\r\n if (dataGrid?.[`TimeOn${i}`] && dataGrid?.[`TimeOff${i}`] !== \"\") { // \r\n counter += 1;\r\n const timeOn = insertColon(dataGrid?.[`TimeOn${i}`])\r\n const timeOff = insertColon(dataGrid?.[`TimeOff${i}`])\r\n arrChips.push(\r\n {\r\n label: `${timeOn} - ${timeOff}`,\r\n icon: arrIcons[counter - 1],\r\n }\r\n )\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {arrChips.map((chip, index) => {\r\n return (\r\n \r\n )\r\n })}\r\n \r\n )\r\n };\r\n\r\n const loadGrid = () => {\r\n const params = {\r\n FormID: \"W29F3000\",\r\n Mode: 0,\r\n CriteriaID: \"1\",\r\n TransID,\r\n }\r\n setLoading(true);\r\n props.w29f2306Actions.loadGrid(params, (error, data) => {\r\n setLoading(false);\r\n if (error) {\r\n Config.popup.show(\"INFO\", error);\r\n return false;\r\n }\r\n else if (data) {\r\n setDataGrid(data);\r\n }\r\n })\r\n };\r\n\r\n /**\r\n * \r\n * @param {string} type in [\"CPre\",\"CBet\",\"CAft\"]\r\n * @returns\r\n */\r\n const getOTHour = async (type) => {\r\n const action = `${type.toLowerCase()}`; // [\"cpre\", \"cbet\", \"caft\"]\r\n const getOTKeyFrom = `${type}OTFrom`;\r\n const getOTKeyTo = `${type}OTTo`;\r\n const { WorkingDay, ShiftID } = dataGrid;\r\n const params = {\r\n AttendanceDate: formatDay(WorkingDay),\r\n EmployeeID,\r\n ShiftID,\r\n [getOTKeyFrom]: removeColon(dataGrid?.[getOTKeyFrom]),\r\n [getOTKeyTo]: removeColon(dataGrid?.[getOTKeyTo]),\r\n }\r\n if (\r\n !dataGrid?.[getOTKeyFrom] || //check value = null\r\n !dataGrid?.[getOTKeyTo] ||\r\n !isChange // check state change to prevent request API onBlur\r\n ) {\r\n return;\r\n }\r\n else if (\r\n !dataGrid?.[getOTKeyFrom]?.includes(\"_\") && // check value includes \"_\"\r\n !dataGrid?.[getOTKeyTo]?.includes(\"_\")\r\n ) {\r\n setLoading(true);\r\n props.w29f2306Actions[action](params, (error, data) => {\r\n setLoading(false);\r\n setIsChange(false);\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n else if (data) {\r\n const oldDataGrid = dataGrid;\r\n if(data.Status === 1) {\r\n Config.popup.show(\"INFO\", data.Message);\r\n setDataGrid({ ...oldDataGrid, [`${type}OTHours`]: 0 }) // ex: CPreOTHours : 0\r\n return;\r\n }\r\n else {\r\n setDataGrid({ ...oldDataGrid, [`${type}OTHours`]: data?.OTHour }) // ex: CPreOTHours : 1\r\n }\r\n }\r\n })\r\n }\r\n };\r\n\r\n const _checkMaskRules = data => {\r\n if (!data) return null;\r\n return data?.startsWith(\"2\");\r\n };\r\n\r\n const handleChange = (key, e) => {\r\n const value = e?.target?.value ?? e?.value ?? \"\";\r\n setIsChange(true);\r\n setDataGrid({ ...dataGrid, [`${key}`]: value });\r\n };\r\n\r\n const onSave = async () => {\r\n const saveMode = mode === \"add\" ? 0 : 1;\r\n const {\r\n CPreOTHours,\r\n CBetOTHours,\r\n CAftOTHours,\r\n WorkingDay,\r\n CPreOTFrom,\r\n CPreOTTo,\r\n CBetOTFrom,\r\n CBetOTTo,\r\n CAftOTFrom,\r\n CAftOTTo,\r\n Note,\r\n Reason\r\n } = dataGrid;\r\n const timeIsValid = \r\n !CPreOTFrom.includes(\"_\") &&\r\n !CPreOTTo.includes(\"_\") &&\r\n !CBetOTFrom.includes(\"_\") &&\r\n !CBetOTTo.includes(\"_\") &&\r\n !CAftOTFrom.includes(\"_\") &&\r\n !CAftOTTo.includes(\"_\");\r\n\r\n if(timeIsValid) {\r\n const params = {\r\n TransID,\r\n Mode: saveMode,\r\n FormID: \"W29F2305\",\r\n CPreOTHours: CPreOTHours ?? 0,\r\n CBetOTHours: CBetOTHours ?? 0,\r\n CAftOTHours: CAftOTHours ?? 0,\r\n EmployeeID,\r\n WorkingDay: formatDay(WorkingDay),\r\n CPreOTFrom: removeColon(CPreOTFrom) ?? \"\",\r\n CPreOTTo: removeColon(CPreOTTo) ?? \"\",\r\n CBetOTFrom: removeColon(CBetOTFrom) ?? \"\",\r\n CBetOTTo: removeColon(CBetOTTo) ?? \"\",\r\n CAftOTFrom: removeColon(CAftOTFrom) ?? \"\",\r\n CAftOTTo: removeColon(CAftOTTo) ?? \"\",\r\n Note: Note ?? \"\",\r\n Reason: Reason ?? \"\",\r\n }\r\n setLoading(true);\r\n props.w29f2306Actions.save(params, (error, data) => {\r\n setLoading(false);\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n else if (data) {\r\n if(data?.Status === 1) {\r\n Config.popup.show(\"INFO\", data.Message);\r\n }\r\n else {\r\n onClose && onClose(true);\r\n Config.notify.show('success', Config.lang(\"Luu_thanh_cong\"), 2000);\r\n }\r\n }\r\n })\r\n }\r\n\r\n };\r\n\r\n useEffect(() => {\r\n loadGrid();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n {Config.lang(\"Thay_doi_ke_hoach_tang_ca\")}\r\n \r\n \r\n \r\n {/* avatar, ten nhan vien, phong ban, ngay vao lam */}\r\n \r\n {renderInfo()}\r\n \r\n {/* thong tin ngay lam */}\r\n \r\n {renderDayInfo()}\r\n \r\n \r\n \r\n {Config.lang(\"Gio_vao\")} - {Config.lang(\"ra\")}:\r\n \r\n {renderChips()}\r\n \r\n {/* title */}\r\n \r\n {isAllNotEmpty &&\r\n <>\r\n \r\n \r\n {Config.lang(\"Thuc_te\")}\r\n \r\n \r\n \r\n \r\n {Config.lang(\"Ke_hoach\")}\r\n \r\n \r\n \r\n \r\n {Config.lang(\"Dieu_chinh\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {/* grid */}\r\n {arrOT.map((OTType, index) => {\r\n const keyTime = arrTime[index]; // \"Pre, Bet, Aft\"\r\n\r\n const planFrom = insertColon(dataGrid?.[`${keyTime}OTFrom`]); // \"PreOTFrom, BetOTFrom, AftOTFrom\"\r\n const planTo = insertColon(dataGrid?.[`${keyTime}OTTo`]); // \"PreOTTo, BetOTTo, AftOTTo\"\r\n const planHour = dataGrid?.[`${keyTime}OTHours`]; // \"PreOTHours, ...\"\r\n const planOTIsNotEmpty = planFrom && planTo; // check for empty\r\n\r\n const keyFrom = `C${keyTime}OTFrom`; // \"CPreOTFrom, CBetOTFrom, CAftOTFrom\"\r\n const keyTo = `C${keyTime}OTTo`; // \"CPreOTTo, CBetOTTo, CAftOTTo\"\r\n const keyHour = dataGrid?.[`C${keyTime}OTHours`]; // \"CPreOTHours, ...\"\r\n checkRule[keyFrom] = dataGrid?.[keyFrom] && _checkMaskRules(dataGrid?.[keyFrom]);\r\n checkRule[keyTo] = dataGrid?.[keyTo] && _checkMaskRules(dataGrid?.[keyTo]);\r\n\r\n return (\r\n \r\n {planOTIsNotEmpty &&\r\n \r\n \r\n {OTType}\r\n \r\n \r\n }\r\n {/* Cột Thực tế */}\r\n {planOTIsNotEmpty &&\r\n \r\n \r\n {`${dataGrid?.[`Ori${keyTime}OTHours`]}h`}\r\n \r\n \r\n }\r\n {/* Cột Kế Hoạch*/}\r\n {planOTIsNotEmpty &&\r\n \r\n <>\r\n \r\n {planFrom} - {planTo}\r\n \r\n \r\n {planHour}h\r\n \r\n \r\n \r\n }\r\n {/* Cột Điều Chỉnh*/}\r\n {planOTIsNotEmpty &&\r\n \r\n handleChange(keyFrom, e)}\r\n value={dataGrid?.[keyFrom]}\r\n readOnly={isView}\r\n onBlur={async () => {\r\n if (dataGrid?.[keyFrom]) {\r\n if (\r\n dataGrid?.[keyFrom]\r\n .split(\"\")\r\n .some(val => val === \"_\")\r\n ) {\r\n setErrorMask({\r\n ...errorMask,\r\n [keyFrom]: true,\r\n });\r\n } else {\r\n setErrorMask({\r\n ...errorMask,\r\n [keyFrom]: false,\r\n });\r\n }\r\n }\r\n if (!isView)\r\n await getOTHour(`C${keyTime}`);\r\n }}\r\n onKeyDown={e => {\r\n if (\r\n e?.keyCode === 9 &&\r\n !isView\r\n ) {\r\n getOTHour(`C${keyTime}`);\r\n }\r\n }}\r\n >\r\n {props => (\r\n \r\n )}\r\n \r\n -\r\n handleChange(keyTo, e)}\r\n value={dataGrid?.[keyTo]}\r\n readOnly={isView}\r\n onBlur={() => {\r\n if (dataGrid?.[keyTo]) {\r\n if (\r\n dataGrid?.[keyTo]\r\n .split(\"\")\r\n .some(val => val === \"_\")\r\n ) {\r\n setErrorMask({\r\n ...errorMask,\r\n [keyTo]: true,\r\n });\r\n } else {\r\n setErrorMask({\r\n ...errorMask,\r\n [keyTo]: false,\r\n });\r\n }\r\n }\r\n if (!isView)\r\n getOTHour(`C${keyTime}`);\r\n }}\r\n onKeyDown={e => {\r\n if (\r\n e?.keyCode === 9 &&\r\n !isView\r\n ) {\r\n getOTHour(`C${keyTime}`);\r\n }\r\n }}\r\n >\r\n {props => (\r\n \r\n )}\r\n \r\n \r\n {keyHour}h\r\n \r\n {(errorMask?.[keyFrom] || errorMask?.[keyTo]) &&\r\n \r\n {Config.lang(\"Ban_phai_nhap_dung_dinh_dang_vd_11:11\")}\r\n }\r\n \r\n }\r\n {(planOTIsNotEmpty && index !== 2) &&\r\n \r\n \r\n \r\n }\r\n \r\n )\r\n })\r\n }\r\n {/* */}\r\n \r\n { handleChange(\"Reason\", e) }}\r\n label={Config.lang(\"Ly_do\")}\r\n viewType={\"underlined\"}\r\n className={\"mgt2x\"}\r\n />\r\n \r\n \r\n { handleChange(\"Note\", e) }}\r\n label={Config.lang(\"Ghi_chu\")}\r\n viewType={\"underlined\"}\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 compose(\r\n connect(\r\n () => ({}),\r\n (dispatch) => ({\r\n w29f2306Actions: bindActionCreators(W29F2306Actions, dispatch),\r\n generalActions: bindActionCreators(generalActions, dispatch),\r\n })\r\n ),\r\n)(W29F2306);","/**\r\n * @copyright 2019 @ DigiNet\r\n * @author NAMDANG\r\n * @create 10/13/2022\r\n * @Example\r\n */\r\n\r\nimport {\r\n Button,\r\n DateRangePicker,\r\n Dropdown,\r\n Typography,\r\n Row,\r\n Col,\r\n Avatar,\r\n Chip,\r\n TextInput,\r\n} from \"diginet-core-ui/components\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport Config from \"../../../../config\";\r\nimport * as approvalActions from \"../../../../redux/approvals/approvals_actions\";\r\nimport * as generalActions from \"../../../../redux/general/general_actions\";\r\nimport Approvals from \"../../../approvals/approvals\";\r\nimport ActionToolbar from \"../../../common/toolbar/action-toolbar\";\r\nimport Filter from \"../../../filter/filter\";\r\nimport { makeStyles } from \"diginet-core-ui/theme\";\r\nimport W29F2309 from \"../W29F2309/W29F2309\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n height: {\r\n height: 48,\r\n },\r\n cellInfo: {\r\n backgroundColor: Config.hexToRGBA(theme.colors.info, 0.1),\r\n },\r\n cellSuccess: {\r\n backgroundColor: Config.hexToRGBA(theme.colors.success, 0.1),\r\n },\r\n cellWarning: {\r\n backgroundColor: Config.hexToRGBA(theme.colors.warning, 0.1),\r\n },\r\n inputTime: {\r\n padding: `${theme.spacing(1)}px ${theme.spacing(2)}px`,\r\n backgroundColor: theme.colors.white,\r\n border: `1px solid ${theme.colors.dark6}`,\r\n borderRadius: 4,\r\n },\r\n borderBottomDark2: {\r\n borderBottom: `1px solid ${theme.colors.dark2}`,\r\n },\r\n dateInfo: {\r\n [theme.breakpoints.down(\"xl\")]: {\r\n marginLeft: `${theme.spacing(20)}px`,\r\n },\r\n },\r\n borderBottomDark: {\r\n borderBottom: `1px solid ${theme.colors.dark}`\r\n },\r\n marginTime: {\r\n marginRight: `${theme.spacing(8)}px`,\r\n [theme.breakpoints.down(\"xl\")]: {\r\n marginRight: `${theme.spacing(4)}px`,\r\n },\r\n }\r\n}));\r\n\r\nconst FormID = \"W29F2308\";\r\nconst Language = Config.language || \"84\";\r\n\r\nconst W29F2308 = props => {\r\n const classes = useStyles();\r\n\r\n const { location } = props;\r\n const dispatch = useDispatch();\r\n const dataCboAppStatus = useSelector(state => state?.general?.getCboAppStatus ?? []);\r\n\r\n const [iPermission, setIPermission] = useState(0);\r\n const [loading, setLoading] = useState(false);\r\n const [loadingCboEmployees, setLoadingCboEmployees] = useState(false);\r\n const [openW29F2309, setOpenW29F2309] = useState(false);\r\n const [dataForm, setDataForm] = useState({});\r\n const [dataCboEmployees, setDataCboEmployees] = useState({\r\n rows: [],\r\n total: 0,\r\n });\r\n\r\n const [dataFilter, setDataFilter] = useState(() => ({\r\n EmployeeID: \"\",\r\n ApprovalStatus: null,\r\n DateFrom: null,\r\n DateTo: null,\r\n }));\r\n\r\n const [filter, setFilter] = useState(() => ({\r\n EmployeeID: \"\",\r\n ApprovalStatus: null,\r\n DateFrom: null,\r\n DateTo: null,\r\n }));\r\n\r\n const approvalRef = useRef(null);\r\n\r\n const paramFilterCboEmployees = {\r\n skip: 0,\r\n limit: 50,\r\n search: \"\",\r\n };\r\n\r\n const loadPermission = () => {\r\n dispatch(\r\n generalActions.getPermission(\"W29F2308\", isPer => {\r\n setIPermission(isPer);\r\n })\r\n );\r\n };\r\n\r\n const loadCboAppStatus = () => {\r\n const param = {\r\n FormID: FormID,\r\n Language: Language,\r\n };\r\n\r\n dispatch(\r\n generalActions.getCboAppStatus(param, error => {\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n })\r\n );\r\n };\r\n\r\n const loadCboEmployees = isReset => {\r\n const param = {\r\n Type: \"EmployeeID\",\r\n FormID: FormID,\r\n Language: Language,\r\n ...paramFilterCboEmployees,\r\n };\r\n setLoadingCboEmployees(true);\r\n dispatch(\r\n generalActions.getCboEmployees(param, (err, data) => {\r\n setLoadingCboEmployees(false);\r\n if (err) return Config.popup.show(\"ERROR\", err);\r\n if (data) {\r\n const rows = data?.rows ?? data;\r\n const total = data?.total ?? data?.length;\r\n setDataCboEmployees({\r\n rows: isReset ? rows : dataCboEmployees.rows.concat(rows),\r\n total,\r\n });\r\n }\r\n })\r\n );\r\n };\r\n\r\n const loadFormInfo = (voucherID, cb) => {\r\n const params = {\r\n DivisionID: Config.getDivisionID() ?? \"\",\r\n FormID: FormID,\r\n Language: Language,\r\n VoucherID: voucherID ?? \"\",\r\n };\r\n setLoading(true);\r\n dispatch(\r\n approvalActions.getFormInfo(params, (err, dt) => {\r\n setLoading(false);\r\n if (err) {\r\n return Config.popup.show(\"ERROR\", err);\r\n }\r\n if (dt) {\r\n setDataForm(dt);\r\n cb && cb(dt);\r\n }\r\n })\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n loadPermission();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n useEffect(() => {\r\n const VoucherID = location?.state?.voucher_id ?? null;\r\n if (VoucherID) {\r\n loadFormInfo(VoucherID, dt => {\r\n dt.VoucherID = VoucherID;\r\n approvalRef.current && approvalRef.current.showPopup(dt);\r\n });\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [location]);\r\n\r\n const onLoadCboFilter = () => {\r\n loadCboAppStatus();\r\n loadCboEmployees();\r\n };\r\n\r\n const renderFilter = () => {\r\n const { EmployeeID, ApprovalStatus, DateFrom, DateTo } = filter;\r\n return (\r\n {\r\n return (\r\n <>\r\n filterChange(\"Date\", e)}\r\n placeholder={\"dd/mm/yyyy - dd/mm/yyyy\"}\r\n returnFormat={\"YYYY-MM-DD\"}\r\n viewType={\"outlined\"}\r\n />\r\n filterChange(\"ApprovalStatus\", e)}\r\n dataSource={dataCboAppStatus}\r\n value={ApprovalStatus}\r\n viewType={\"outlined\"}\r\n />\r\n filterChange(\"EmployeeID\", e)}\r\n value={EmployeeID}\r\n viewType={\"outlined\"}\r\n loading={loadingCboEmployees}\r\n onInput={e => {\r\n paramFilterCboEmployees.search = e?.target?.value ?? \"\";\r\n paramFilterCboEmployees.skip = 0;\r\n loadCboEmployees(true);\r\n }}\r\n onLoadMore={e => {\r\n paramFilterCboEmployees.skip = e?.skip ?? 0;\r\n paramFilterCboEmployees.limit = e?.limit ?? 10;\r\n loadCboEmployees();\r\n }}\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 onSearch = () => {\r\n setDataFilter({ ...dataFilter, ...filter });\r\n };\r\n\r\n const filterChange = (key, data) => {\r\n switch (key) {\r\n case \"ApprovalStatus\":\r\n setFilter({\r\n ...filter,\r\n [key]: data?.value ?? null,\r\n });\r\n break;\r\n case \"EmployeeID\":\r\n setFilter({\r\n ...filter,\r\n [key]: data?.value ?? \"\",\r\n });\r\n break;\r\n case \"Date\":\r\n setFilter({\r\n ...filter,\r\n DateFrom: data?.value?.[0] ?? null,\r\n DateTo: data?.value?.[1] ?? null,\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const onSelectionChanged = e => {\r\n if (!e) return false;\r\n loadFormInfo(e.VoucherID);\r\n };\r\n\r\n const insertColon = time => {\r\n if (!time) return \"\";\r\n if (time.includes(\":\")) return time;\r\n return `${time.slice(0, 2)}:${time.slice(2)}`;\r\n };\r\n\r\n const onOpenW29F2039 = isLoad => {\r\n setOpenW29F2309(!openW29F2309);\r\n if (isLoad && approvalRef.current) approvalRef.current.loadGrid();\r\n };\r\n\r\n const cellRenderSuccess = ({ OTFrom, OTTo, OTHours }) => {\r\n return (\r\n
\r\n {OTFrom && OTTo &&\r\n \r\n {`${insertColon(OTFrom)} - ${insertColon(OTTo)}`}\r\n }\r\n {`${OTHours || 0}h`}\r\n
\r\n );\r\n };\r\n\r\n const cellRenderWarning = ({ OTFrom, OTTo, OTHours }) => {\r\n return (\r\n
\r\n
\r\n {OTFrom !== \"\" ? (\r\n <>\r\n {insertColon(OTFrom)}\r\n -\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {OTTo !== \"\" ? {insertColon(OTTo)} : \"\"}\r\n
\r\n {`${OTHours || 0}h`}\r\n
\r\n );\r\n };\r\n\r\n const cellRenderText = (text = \"\", classBorder= \"\") => {\r\n return (\r\n \r\n
\r\n \r\n {text}\r\n \r\n
\r\n \r\n )\r\n };\r\n\r\n const cellRenderInfo = (time = \"\", classBorder= \"\", key) => {\r\n return (\r\n \r\n
\r\n {`${time || 0}h`}\r\n
\r\n \r\n )\r\n };\r\n\r\n\r\n\r\n const renderFormInfo = data => {\r\n const user = Config.getUser({ EmployeeID: data?.EmployeeID || \"\" });\r\n const arrIcons = [\"OneSquare\", \"TwoSquare\", \"ThreeSquare\", \"FourSquare\", \"FiveSquare\"];\r\n let arrChips = [];\r\n for (let i = 1; i <= 5; i++) {\r\n if (data[`TimeOn${i}`] !== \"\" || data[`TimeOff${i}`] !== \"\") {\r\n arrChips.push({\r\n icon: arrIcons[i - 1],\r\n indexTime: i\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 {Config.lang(\"Nhan_vien\")}:\r\n \r\n {`${user?.EmployeeName ?? \"\"}`}\r\n
\r\n
\r\n \r\n {Config.lang(\"Phong_ban\")}:\r\n \r\n {`${user?.DepartmentID ?? \"\"} - ${user?.DepartmentName ?? \"\"}`}\r\n
\r\n
\r\n \r\n {Config.lang(\"Ngay_vao_lam\")}:\r\n \r\n {Config.helpers.convertDate(user?.DateJoined ?? \"\", \"\") ?? \"\"}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {`${data?.WorkingDay ?? \"\"} - ${data?.WorkDayType ?? \"\"}`}\r\n \r\n {data?.ShiftName ?? \"\"}\r\n {(data?.SPreOTFrom !== \"\" || data?.SPreOTTo !== \"\") ? (\r\n \r\n {Config.lang(\"TCT\")}: {`${insertColon(data?.SPreOTFrom)} - ${insertColon(data?.SPreOTTo)}`}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n {(data?.SBetOTFrom !== \"\" || data?.SBetOTTo !== \"\") ? (\r\n \r\n {Config.lang(\"TCG\")}: {`${insertColon(data?.SBetOTFrom)} - ${insertColon(data?.SBetOTTo)}`}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n {(data?.SAftOTFrom !== \"\" || data?.SAftOTTo !== \"\") ? (\r\n \r\n {Config.lang(\"TCS\")}: {`${insertColon(data?.SAftOTFrom)} - ${insertColon(data?.SAftOTTo)}`}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n \r\n \r\n
\r\n \r\n {Config.lang(\"Gio_vao_raU\")}:\r\n \r\n
\r\n {arrChips.map(chip => {\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 {(data?.PreOTFrom !== \"\" || data?.PreOTTo !== \"\") &&\r\n cellRenderText(Config.lang(\"TCT\"), classes.borderBottomDark2)\r\n }\r\n {(data?.BetOTFrom !== \"\" || data?.BetOTTo !== \"\") &&\r\n cellRenderText(Config.lang(\"TCG\"), classes.borderBottomDark2)\r\n }\r\n {(data?.AftOTFrom !== \"\" || data?.AftOTTo !== \"\") &&\r\n cellRenderText(Config.lang(\"TCS\"))\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {Config.lang(\"Thuc_te\")}\r\n \r\n \r\n {[\"PreOT\", \"BetOT\", \"AftOT\"].map((key) => {\r\n if(data?.[`${key}From`] !== \"\" || data?.[`${key}To`] !== \"\") {\r\n const classBorder = key !== \"AftOT\" ? classes.borderBottomDark2 : \"\";\r\n return cellRenderInfo(data?.[`Ori${key}Hours`], classBorder, key)\r\n } else {\r\n return \"\"\r\n }\r\n\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {Config.lang(\"Ke_hoach\")}\r\n \r\n \r\n {(data?.PreOTFrom !== \"\" || data?.PreOTTo !== \"\") && (\r\n \r\n {cellRenderSuccess({\r\n OTFrom: data?.PreOTFrom,\r\n OTTo: data?.PreOTTo,\r\n OTHours: data?.PreOTHours ?? \"\",\r\n })}\r\n \r\n )}\r\n {(data?.BetOTFrom !== \"\" || data?.BetOTTo !== \"\") && (\r\n \r\n {cellRenderSuccess({\r\n OTFrom: data?.BetOTFrom,\r\n OTTo: data?.BetOTTo,\r\n OTHours: data?.BetOTHours ?? \"\",\r\n })}\r\n \r\n )}\r\n {(data?.AftOTFrom !== \"\" || data?.AftOTTo !== \"\") && (\r\n \r\n {cellRenderSuccess({\r\n OTFrom: data?.AftOTFrom,\r\n OTTo: data?.AftOTTo,\r\n OTHours: data?.AftOTHours ?? \"\",\r\n })}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {Config.lang(\"Dieu_chinh\")}\r\n \r\n \r\n {(data?.PreOTFrom !== \"\" || data?.PreOTTo !== \"\") && (\r\n \r\n {cellRenderWarning({\r\n OTFrom: data?.CPreOTFrom,\r\n OTTo: data?.CPreOTTo,\r\n OTHours: data?.CPreOTHours ?? \"\",\r\n })}\r\n \r\n )}\r\n {(data?.BetOTFrom !== \"\" || data?.BetOTTo !== \"\") && (\r\n \r\n {cellRenderWarning({\r\n OTFrom: data?.CBetOTFrom,\r\n OTTo: data?.CBetOTTo,\r\n OTHours: data?.CBetOTHours ?? \"\",\r\n })}\r\n \r\n )}\r\n {(data?.AftOTFrom !== \"\" || data?.AftOTTo !== \"\") && (\r\n \r\n {cellRenderWarning({\r\n OTFrom: data?.CAftOTFrom,\r\n OTTo: data?.CAftOTTo,\r\n OTHours: data?.CAftOTHours ?? \"\",\r\n })}\r\n \r\n )}\r\n \r\n \r\n \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 {openW29F2309 ? : \"\"}\r\n \r\n onOpenW29F2039()}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default W29F2308;\r\n","/**\r\n * @copyright 2022 @ DigiNet\r\n * @author THANHAN\r\n * @create 10/10/2022\r\n * @Example\r\n */\r\n\r\nimport React, { useState, useEffect, useRef, useMemo } from 'react';\r\nimport { useDispatch } from \"react-redux\";\r\nimport Config from \"../../../../config\";\r\nimport { makeStyles } from \"diginet-core-ui/theme\";\r\nimport {\r\n Row,\r\n Col,\r\n Modal,\r\n ModalHeader,\r\n ModalBody,\r\n ModalFooter,\r\n Button,\r\n Typography,\r\n Dropdown,\r\n ButtonIcon,\r\n Checkbox,\r\n TreeView,\r\n DateRangePicker\r\n} from \"diginet-core-ui/components\";\r\nimport ActionToolbar from \"../../../common/toolbar/action-toolbar\";\r\nimport GridContainer from \"../../../grid-container/grid-container\";\r\nimport \"./W29F2309.scss\";\r\nimport * as W29F2309Actions from \"../../../../redux/W2X/W29F2309/W29F2309_actions\";\r\nimport * as generalActions from \"../../../../redux/general/general_actions\";\r\nimport { Column } from \"devextreme-react/data-grid\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n col: {\r\n height: \"100%\",\r\n },\r\n borderLeft: {\r\n borderLeft: `1px solid ${theme.colors?.line?.system}`,\r\n },\r\n leftColItem:{\r\n marginRight: theme.spacing(6),\r\n [theme.breakpoints.down('md')]: {\r\n marginRight: 0\r\n }\r\n },\r\n actionToolbar:{\r\n marginLeft: -24,\r\n width: \"unset\",\r\n marginTop: \"0px!important\",\r\n backgroundColor: `${theme.colors.brand24}`,\r\n [theme.breakpoints.down('md')]: {\r\n marginLeft: 0,\r\n }\r\n },\r\n grid:{\r\n marginBottom: -theme.spacing(4),\r\n paddingBottom: theme.spacing(4),\r\n }\r\n}))\r\n\r\nconst dataColumnGridExtra = () => [\r\n {\r\n caption: Config.lang('Nhan_vien'),\r\n width: 200,\r\n dataField: 'EmployeeName',\r\n },\r\n {\r\n caption: Config.lang('Ngay_lam_viec'),\r\n dataField: 'AttendanceDate',\r\n width: 150,\r\n alignment: \"center\",\r\n dataType: \"date\",\r\n format: \"dd/MM/yyyy\"\r\n },\r\n {\r\n caption: Config.lang('Tang_ca_truoc'),\r\n alignment: \"center\",\r\n dataField: \"PreOT\",\r\n columns: [\r\n {\r\n caption: Config.lang('Ke_hoach'),\r\n alignment: \"right\",\r\n dataField: 'PreOTHours',\r\n },\r\n {\r\n caption: Config.lang('Thuc_te'),\r\n alignment: \"right\",\r\n dataField: 'OriPreOTHours',\r\n },\r\n {\r\n caption: Config.lang('Dieu_chinh'),\r\n alignment: \"right\",\r\n dataField: 'CPreOTHours',\r\n }\r\n ]\r\n },\r\n];\r\n\r\nconst FormID = \"W29F2308\";\r\nconst Language = Config.language || \"84\";\r\n\r\nconst W29F2308 = React.memo((props) => {\r\n const {\r\n open,\r\n onClose,\r\n iPermission,\r\n } = props;\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const [dataFilter, setDataFilter] = useState(() => ({\r\n OrgChartID: [],\r\n ProjectID: \"\",\r\n ShiftID: \"\",\r\n EmployeeID: \"\",\r\n DateFrom: null,\r\n DateTo: null,\r\n }));\r\n let errorMessage = \"\";\r\n let counter = 0;\r\n\r\n const [rangeDate, setRangeDate] = useState([]);\r\n const [dataGrid, setDataGrid] = useState(() => ({rows: [], total: 0}));\r\n const [dataCboEmployees, setDataCboEmployees] = useState(() => ({ rows: [], total: 0 }));\r\n const [isShowBetOT, setIsShowBetOT] = useState(0);\r\n const [dataOrgChart, setDataOrgChart] = useState([]);\r\n\r\n const [cboCboEmployeesLoading, setCboCboEmployeesLoading] = useState(false);\r\n const [cboOrgChartLoading, setCboOrgChartLoading] = useState(false);\r\n const [gridLoading, setGridLoading] = useState(false);\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [isShowSelected, setIsShowSelected] = useState(false);\r\n\r\n const filterCboEmployees = useRef({\r\n search: \"\",\r\n skip: 0,\r\n limit: 50\r\n });\r\n const refGrid = useRef(null);\r\n const paramsPaging = useRef({\r\n skip: 0,\r\n limit: 20,\r\n });\r\n const refSelectedRowsData = useRef([]);\r\n const refSelectedRowKeys = useRef([]);\r\n const isSelectAll = useRef(false);\r\n const isChangePage = useRef(false);\r\n const isChangeShow = useRef(false);\r\n const isFilter = useRef(false);\r\n const timer = useRef(0);\r\n\r\n const [showDrawer, setShowDrawer] = useState(true);\r\n\r\n const loadGrid = (isLoadGrid = false) => {\r\n if (!isLoadGrid) {\r\n isChangePage.current = true;\r\n }\r\n const params = {\r\n FormID: FormID,\r\n DateFrom: rangeDate?.length > 0 ? rangeDate[0] : null,\r\n DateTo: rangeDate?.length > 0 ? rangeDate[1] : null,\r\n OrgChartID: dataFilter?.OrgChartID.length > 0 ? dataFilter.OrgChartID : [],\r\n EmployeeID: dataFilter.EmployeeID,\r\n Skip: paramsPaging.current.skip,\r\n Limit: paramsPaging.current.limit,\r\n\r\n };\r\n setGridLoading(true);\r\n dispatch(W29F2309Actions.loadForm(params, (error, data) => {\r\n setGridLoading(false);\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n setDataGrid({ rows: data?.rows || [], total: data?.total || 0 });\r\n resetData();\r\n }));\r\n }\r\n\r\n const loadCboEmployees = (isReset) => {\r\n const param = {\r\n HostID: \"\",\r\n Type: \"EmployeeID\",\r\n FormID: FormID,\r\n Language,\r\n skip: filterCboEmployees.current.skip,\r\n limit: filterCboEmployees.current.limit,\r\n search: filterCboEmployees.current.search,\r\n };\r\n setCboCboEmployeesLoading(true);\r\n dispatch(generalActions.getCboEmployees(param, (error, data) => {\r\n setCboCboEmployeesLoading(false);\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n const rows = data?.rows || [];\r\n const total = data?.total || 0;\r\n setDataCboEmployees({\r\n rows: isReset ? rows : dataCboEmployees.rows.concat(rows),\r\n total: total,\r\n });\r\n }));\r\n };\r\n\r\n const getGridSetting = () => {\r\n dispatch(W29F2309Actions.getGridSetting((error, data) => {\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n setIsShowBetOT(!!data.IsBetweenOT)\r\n }));\r\n }\r\n\r\n const loadDataOrgChart = () => {\r\n setCboOrgChartLoading(true);\r\n dispatch(generalActions.getOrgCharts({}, (error, data) => {\r\n setCboOrgChartLoading(false);\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n setDataOrgChart(data || []);\r\n }));\r\n };\r\n\r\n const setDataSelectedRowKeys = (e = {}, keyCompareChecked) => {\r\n const {currentSelectedRowKeys, selectedRowsData} = e;\r\n let deselectRowsKey = [];\r\n currentSelectedRowKeys.map(key => {\r\n if(refSelectedRowKeys.current.indexOf(key) < 0) {\r\n e.component.byKey(key).done(item => {\r\n // đk để bỏ chọn những dòng disabled\r\n const rowData = selectedRowsData.find(f => f.TransID === key);\r\n if(rowData) {\r\n refSelectedRowsData.current.push(rowData);\r\n }\r\n refSelectedRowKeys.current.push(key);\r\n });\r\n }\r\n return key;\r\n });\r\n if(deselectRowsKey.length > 0) {\r\n e.component.deselectRows(deselectRowsKey);\r\n }\r\n };\r\n\r\n const onSelectionChanged = (e) => {\r\n // khi change page khong cho DeselectedRowKeys\r\n if(isChangePage.current) {\r\n isChangePage.current = false;\r\n return false;\r\n }\r\n // case: khi có data SelectedRowKeys => changepage => click checkbox isShowSelected => changepage => thì khong cho DeselectedRowKeys\r\n if(isChangeShow.current) {\r\n isChangeShow.current = false;\r\n return false;\r\n }\r\n const {currentSelectedRowKeys, selectedRowKeys, currentDeselectedRowKeys} = e;\r\n const total = e.component.totalCount();\r\n // su ly SelectAll và deselectAll\r\n if ((selectedRowKeys.length === total || selectedRowKeys.length === 0) && isSelectAll.current) {\r\n if (selectedRowKeys.length === total) e.component.deselectAll();\r\n if (selectedRowKeys.length === 0) isSelectAll.current = false;\r\n }\r\n isSelectAll.current = selectedRowKeys.length && (selectedRowKeys.length + currentDeselectedRowKeys.length) === total;\r\n // su ly chon tung dong\r\n if(currentDeselectedRowKeys.length > 0) {\r\n currentDeselectedRowKeys.map(key => {\r\n if(refSelectedRowKeys.current.includes(key) && refSelectedRowsData.current.length > 0) {\r\n refSelectedRowsData.current = refSelectedRowsData.current.filter(f => f.TransID !== key);\r\n refSelectedRowKeys.current = refSelectedRowKeys.current.filter(f => f !== key);\r\n }\r\n return key;\r\n });\r\n }\r\n else if(currentSelectedRowKeys.length > 0) {\r\n setDataSelectedRowKeys(e);\r\n }\r\n };\r\n\r\n const onChangePage = (page) => {\r\n paramsPaging.current.skip = page * paramsPaging.current.limit;\r\n loadGrid();\r\n };\r\n\r\n const onChangePerPage = (perPage) => {\r\n paramsPaging.current.skip = 0;\r\n paramsPaging.current.limit = perPage;\r\n loadGrid();\r\n };\r\n\r\n //true: Con key chua duoc select; false: da select het..\r\n const _checkSelectedRowsKeys = (dataSource) => {\r\n let isCheck = false;\r\n if (dataSource?.length > 0 && refSelectedRowKeys.current.length > 0) {\r\n const dataKeys = dataSource.map(d => d.TransID);\r\n for (let key of refSelectedRowKeys.current) {\r\n if (!dataKeys.includes(key)) {\r\n isCheck = true;\r\n break;\r\n }\r\n }\r\n }\r\n return isCheck;\r\n };\r\n\r\n const onLoadDataFilter = () => {\r\n loadDataOrgChart();\r\n loadCboEmployees();\r\n };\r\n\r\n const resetData = () => {\r\n refSelectedRowsData.current = [];\r\n refSelectedRowKeys.current = [];\r\n isChangeShow.current = false;\r\n isChangePage.current = false;\r\n isSelectAll.current = false;\r\n setDataFilter(() => ({\r\n OrgChartID: [],\r\n ProjectID: \"\",\r\n ShiftID: \"\",\r\n EmployeeID: \"\",\r\n DateFrom: null,\r\n DateTo: null,\r\n }));\r\n isFilter.current = false;\r\n setIsShowSelected(false);\r\n };\r\n\r\n const _setDataFilter = (obj) => {\r\n setDataFilter({ ...dataFilter, ...obj });\r\n };\r\n\r\n const filterChange = (key, evt) => {\r\n if (!key || !evt) return;\r\n const value = evt?.value ?? evt?.target?.value ?? \"\";\r\n if (key === \"RangePicker\") {\r\n const DayFrom = Array.isArray(value) ? value[0] : null;\r\n const DayTo = Array.isArray(value) ? value[1] : null;\r\n setRangeDate([DayFrom, DayTo]);\r\n } else {\r\n _setDataFilter({ [key]: value });\r\n }\r\n };\r\n\r\n const _onClose = (reload = false) => {\r\n onClose && onClose(reload);\r\n }\r\n\r\n useEffect(() => {\r\n getGridSetting();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n \r\n useEffect(() => {\r\n loadGrid();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n },[isShowBetOT])\r\n\r\n useEffect(() => {\r\n onLoadDataFilter();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (isShowSelected) refGrid.current.instance.filter('IsSelected','=',1);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n },[isShowSelected]);\r\n\r\n let _dataGrid = dataGrid.rows;\r\n\r\n if(isShowSelected) {\r\n if (refSelectedRowsData.current.length > 0) {\r\n const selectedRows = refGrid.current && refGrid.current.instance.getSelectedRowKeys();\r\n _dataGrid = refSelectedRowsData.current;\r\n // kiem tra hiển thị những dòng đã check và reset các biến bằng false cho Deselected Row Keys ở hàm onSelectionChanged\r\n if(selectedRows.length === refSelectedRowKeys.current.length) {\r\n isChangeShow.current = false;\r\n isSelectAll.current = false;\r\n }\r\n }\r\n } else if(isChangeShow.current) {\r\n // kiem tra trường hợp reset isChangeShow.current khi changepage chưa chọn dòng trên lưới sau đó click rồi bỏ click checkbox isShowSelected\r\n if(!_checkSelectedRowsKeys(_dataGrid)) isChangeShow.current = false;\r\n }\r\n _dataGrid = _dataGrid.map(d => ({...d, IsSelected: d.IsSelected ?? 0}));\r\n if (iPermission <= 0) return null;\r\n\r\n const renderGrid = useMemo(() => {\r\n return (\r\n refGrid.current = ref}\r\n dataSource={_dataGrid}\r\n totalItems={dataGrid.total}\r\n itemPerPage={paramsPaging.current.limit}\r\n skipPerPage={paramsPaging.current.skip}\r\n selection={{\r\n allowSelectAll: true,\r\n mode: 'multiple',\r\n selectAllMode: 'allPages',\r\n showCheckBoxesMode: 'always',\r\n }}\r\n onContentReady={(e) => {\r\n if(timer.current) clearTimeout(timer.current);\r\n timer.current = setTimeout(() => {\r\n e.component.selectRows(refSelectedRowKeys.current)\r\n }, 300)\r\n }}\r\n noDataText={Config.lang(\"No_data\")}\r\n loading={gridLoading}\r\n pagerFullScreen={false}\r\n height={656}\r\n showColumnLines={true}\r\n typePaging={\"remote\"}\r\n onSelectionChanged={onSelectionChanged}\r\n onChangePage={onChangePage}\r\n onChangePerPage={onChangePerPage}\r\n onEditorPreparing={(e) => {\r\n if (!e || !e.row) return;\r\n e.editorOptions.onValueChanged = (evt) => {\r\n e.row.data.IsSelected = +evt.value;\r\n //refresh để chạy hàm filter lưới\r\n e.component.refresh()\r\n }\r\n }}\r\n >\r\n {dataColumnGridExtra().map((item, idx) => {\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 // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [_dataGrid, refSelectedRowKeys.current, gridLoading])\r\n\r\n const onSave = (mode) => {\r\n const approvalStatus = mode === 0 ? \"1\" : \"100\";\r\n const arrCheckParams = [];\r\n const arrApprovalParams = [];\r\n if(refSelectedRowsData.current.length > 0){\r\n setGridLoading(true);\r\n setIsSaving(true);\r\n refSelectedRowsData.current.forEach((data) => {\r\n const {\r\n CPreOTHours,\r\n CBetOTHours,\r\n CAftOTHours,\r\n EmployeeID,\r\n AttendanceDate,\r\n ApprovalLevel,\r\n ApprovalFlowID,\r\n TransID\r\n } = data;\r\n const checkParams = {\r\n FormID,\r\n CPreOTHours,\r\n CBetOTHours,\r\n CAftOTHours,\r\n EmployeeID,\r\n WorkingDay: AttendanceDate,\r\n Mode: mode\r\n }\r\n const approvalParams = {\r\n FormID,\r\n VoucherID: TransID,\r\n AttendanceDate,\r\n ApprovalLevel,\r\n ApprovalFlowID,\r\n ApprovalStatus: approvalStatus,\r\n ApprovalNotes:\"\",\r\n Mode: 0,\r\n };\r\n arrCheckParams.push(checkParams);\r\n arrApprovalParams.push(approvalParams);\r\n });\r\n let arrParams = { arrCheckParams, arrApprovalParams };\r\n const checkParamsLength = arrParams.arrCheckParams.length;\r\n const approvalTimeout = checkParamsLength <5 ? 1000 : Math.ceil(checkParamsLength /10) * 1500;\r\n dispatch(W29F2309Actions.check(arrParams, (error, data) => {\r\n counter++;\r\n const isLastRequest = (counter === arrParams.arrCheckParams.length);\r\n const lastRequestHanlder = (data) => {\r\n if (isLastRequest) {\r\n if (errorMessage) {\r\n const lastMessage = Config.lang(`Ton_tai_nhung_don_tu_${mode === 0 ? \"duyet\" : \"tu_choi\"}_khong_thanh_cong:`) + `${errorMessage}\\n${data.Message}`;\r\n setTimeout(() => Config.popup.show(\"INFO\", lastMessage, () => {\r\n arrParams = [];\r\n loadGrid();\r\n }),approvalTimeout);\r\n }\r\n else {\r\n setTimeout(() => Config.popup.show(\"INFO\", Config.lang(`${mode === 0 ? \"Duyet\" : \"Tu_choi\"}_thanh_cong`), () => {\r\n arrParams = [];\r\n loadGrid();\r\n }),approvalTimeout);\r\n }\r\n }\r\n }\r\n \r\n if (isLastRequest) {\r\n setTimeout(()=> {\r\n setIsSaving(false);\r\n setGridLoading(false);\r\n },approvalTimeout)\r\n }\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n else if (data.Status === 1) {\r\n if (data.MsgAsk === 0) {\r\n errorMessage = `${errorMessage}\\n${data.Message}`; // MsgAsk = 0 thì UI giữ lại để sau khi thực hiện hết quy trình sẽ xuất ra Message = Message của các dòng có Status = 1 Và MsgAsk = 0 cộng lại cách nhau bởi dấu xuống dòng\r\n if (isLastRequest) {\r\n const lastMessage = Config.lang(`Ton_tai_nhung_đon_tu_${mode === 0 ? \"duyet\" : \"tu_choi\"}_khong_thanh_cong:`) + `${errorMessage}\\n${data.Message}`;\r\n Config.popup.show(\"INFO\", lastMessage, () => {\r\n arrParams = [];\r\n loadGrid();\r\n });\r\n }\r\n }\r\n else if (data.MsgAsk === 1) {\r\n Config.popup.show(\r\n \"YES_NO\",\r\n data?.Message, \r\n () => { // Yes\r\n dispatch(W29F2309Actions.approval(arrParams.arrApprovalParams[counter - 1], error => {\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n }\r\n lastRequestHanlder(data);\r\n }\r\n ))\r\n },\r\n () => { // No\r\n dispatch(W29F2309Actions.cancelApproval(() => {\r\n lastRequestHanlder(data);\r\n }))\r\n } \r\n );\r\n }\r\n }\r\n else {\r\n lastRequestHanlder(data);\r\n }\r\n }));\r\n }\r\n else {\r\n Config.popup.show(\"INFO\", Config.lang(\"Ban_chua_chon_ke_hoach\"));\r\n }\r\n }\r\n\r\n return (\r\n _onClose(true)}>\r\n \r\n {Config.lang(\"Duyet_thay_doi_ke_hoach_tang_ca_hang_loat\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setShowDrawer(!showDrawer)}\r\n />\r\n {showDrawer &&\r\n {Config.lang(\"Tieu_chi_loc\")}\r\n }\r\n
\r\n {showDrawer &&\r\n setShowDrawer(false)}\r\n />\r\n }\r\n \r\n \r\n {showDrawer &&\r\n <>\r\n \r\n {\r\n isChangeShow.current = true;\r\n if(isChangePage.current) {\r\n isChangePage.current = false;\r\n }\r\n setIsShowSelected(e.value);\r\n }}\r\n disabled={isSaving || gridLoading}\r\n label={Config.lang(\"Chi_hien_thi_nhung_du_lieu_da_chon\")}\r\n />\r\n \r\n \r\n filterChange(\"EmployeeID\", e)}\r\n onInput={(e) => {\r\n filterCboEmployees.current.search = e.target.value;\r\n filterCboEmployees.current.skip = 0;\r\n loadCboEmployees(true);\r\n }}\r\n onLoadMore={(e) => {\r\n filterCboEmployees.current.skip = e.skip;\r\n filterCboEmployees.current.limit = e.limit;\r\n loadCboEmployees();\r\n }}\r\n />\r\n \r\n \r\n filterChange(\"OrgChartID\", e)}\r\n value={dataFilter.OrgChartID}\r\n viewType={'underlined'}\r\n placeholder={Config.lang(\"Chon\")}\r\n >\r\n filterChange(\"OrgChartID\", e)}\r\n parentID={\"OrgChartParentID\"}\r\n value={dataFilter.OrgChartID}\r\n valueExpr={\"OrgChartID\"}\r\n />\r\n \r\n \r\n \r\n filterChange(\"RangePicker\", evt)}\r\n placeholder={\"dd/mm/yyyy - dd/mm/yyyy\"}\r\n returnFormat={\"YYYY-MM-DD\"}\r\n />\r\n \r\n \r\n {\r\n isFilter.current = true;\r\n loadGrid();\r\n }}\r\n />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n {renderGrid}\r\n \r\n \r\n \r\n \r\n onSave(0)}\r\n />\r\n onSave(1)}\r\n />\r\n \r\n \r\n )\r\n})\r\n\r\nexport default W29F2308;","/**\r\n * @copyright 2019 @ DigiNet\r\n * @author NAMDANG\r\n * @create 10/7/2022\r\n * @Example\r\n */\r\n\r\nimport React, { useEffect, useState, useRef, useMemo } from \"react\";\r\nimport {useDispatch, useSelector} from \"react-redux\";\r\nimport * as generalActions from \"../../../../redux/general/general_actions\";\r\nimport * as W29F2300Actions from \"../../../../redux/W2X/W29F2300/W29F2300_actions\";\r\nimport {\r\n Accordion,\r\n AccordionSummary,\r\n AccordionDetails,\r\n TabContainer,\r\n TabHeader,\r\n TabItem, Checkbox, Button, DateRangePicker, TreeView, Dropdown, Col, Row,\r\n} from \"diginet-core-ui/components\";\r\nimport Config from \"../../../../config\";\r\nimport ActionToolbar from \"../../../common/toolbar/action-toolbar\";\r\nimport Filter from \"../../../filter/filter\";\r\nimport { makeStyles } from \"diginet-core-ui/theme\";\r\nimport { Column } from \"devextreme-react/data-grid\";\r\nimport GridContainer from \"../../../grid-container/grid-container\";\r\nimport PopoverShowHideCol from '../../../common/popover-show-hide-col';\r\nimport Status from \"../../../common/status/status\";\r\nimport _ from \"lodash\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n row: {\r\n height: 'calc(100% - 5px)',\r\n },\r\n leftColScroll: {\r\n maxHeight: \"calc(100vh - 100px)\",\r\n overflowY: \"auto\"\r\n },\r\n leftCol: {\r\n padding: theme.spacing([4, 4, 0, 2]),\r\n [theme.breakpoints.down(\"xl\")]: {\r\n padding: theme.spacing([4, 2, 0, 0]),\r\n }\r\n },\r\n col: {\r\n height: \"100%\",\r\n },\r\n borderLeft : {\r\n borderLeft: `1px solid ${theme.colors?.line?.system}`,\r\n }\r\n}));\r\n\r\nconst dataColumnGridExtra = () => [\r\n {\r\n caption: Config.lang('Nhan_vien'),\r\n width: 250,\r\n dataField :'EmployeeName',\r\n },\r\n {\r\n caption: Config.lang('Trang_thai'),\r\n dataField :'StatusID',\r\n isRenderStatus: true,\r\n },\r\n {\r\n caption: Config.lang('Phong_ban'),\r\n dataField :'DepartmentName',\r\n },\r\n {\r\n caption: Config.lang('Nhom_luong'),\r\n dataField :'SalEmpGroupName',\r\n },\r\n {\r\n caption: Config.lang('Chuc_vu'),\r\n dataField :'DutyName',\r\n },\r\n {\r\n caption: Config.lang('Ngay_vao_lam'),\r\n dataField :'DateJoined',\r\n width: 150,\r\n alignment: \"center\",\r\n dataType:\"date\",\r\n format:\"dd/MM/yyyy\"\r\n },\r\n {\r\n caption: Config.lang('Du_an'),\r\n dataField :'ProjectName',\r\n },\r\n {\r\n caption: Config.lang('Ngay_lam_viec'),\r\n dataField :'WorkingDay',\r\n width: 150,\r\n alignment: \"center\",\r\n dataType:\"date\",\r\n format:\"dd/MM/yyyy\"\r\n },\r\n {\r\n caption: Config.lang('Ca'),\r\n dataField :'ShiftName',\r\n },\r\n {\r\n caption: Config.lang('Loai_ngay'),\r\n dataField :'WorkDayType',\r\n },\r\n {\r\n caption: Config.lang('Tang_ca_truoc'),\r\n alignment: \"center\",\r\n dataField: \"PreOT\",\r\n columns: [\r\n {\r\n caption: Config.lang('Ke_hoach'),\r\n alignment: \"right\",\r\n dataField :'PreOTHours',\r\n },\r\n {\r\n caption: Config.lang('Thuc_te'),\r\n alignment: \"right\",\r\n dataField :'OriPreOTHours',\r\n }\r\n ]\r\n },\r\n {\r\n caption: Config.lang('Tang_ca_giua'),\r\n alignment: \"center\",\r\n dataField: \"BetOT\",\r\n columns: [\r\n {\r\n caption: Config.lang('Ke_hoach'),\r\n alignment: \"right\",\r\n dataField :'BetOTHours',\r\n },\r\n {\r\n caption: Config.lang('Thuc_te'),\r\n alignment: \"right\",\r\n dataField :'OriBetOTHours',\r\n }\r\n ]\r\n },\r\n {\r\n caption: Config.lang('Tang_ca_sau'),\r\n alignment: \"center\",\r\n dataField: \"AftOT\",\r\n columns: [\r\n {\r\n caption: Config.lang('Ke_hoach'),\r\n alignment: \"right\",\r\n dataField :'AftOTHours',\r\n },\r\n {\r\n caption: Config.lang('Thuc_te'),\r\n alignment: \"right\",\r\n dataField :'OriAftOTHours',\r\n }\r\n ]\r\n },\r\n];\r\nconst FormID = \"W29F2300\";\r\nconst Language = Config.language || \"84\";\r\n\r\nconst W29F2300 = () => {\r\n const {getCboShifts, getSalaryGroups, getCriteria} = useSelector(state => state.W29F2300 || {});\r\n const {getCboDuty2, getCboProjects, getCboAppStatus} = useSelector(state => state.general || {});\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const [iPermission, setIPermission] = useState(0);\r\n const [dataFilter, setDataFilter] = useState(() => ({\r\n OrgChartID: \"\",\r\n SalEmpGroupID: \"\",\r\n DutyID: \"\",\r\n ProjectID: \"\",\r\n ShiftID: \"\",\r\n StatusID: 0,\r\n EmployeeID: \"\",\r\n }));\r\n const [rangeDate, setRangeDate] = useState([]);\r\n const [dataGrid, setDataGrid] = useState(() => ({rows: [], total: 0}));\r\n const [dataCboEmployees, setDataCboEmployees] = useState(() => ({rows: [], total: 0}));\r\n const [dataOrgChart, setDataOrgChart] = useState([]);\r\n const [dataGridExtraByCriteriaID, setDataGridExtraByCriteriaID] = useState({});\r\n const [cboCboEmployeesLoading, setCboCboEmployeesLoading] = useState(false);\r\n const [criteriaID, setCriteriaID] = useState(null);\r\n const [cboDutyLoading, setCboDutyLoading] = useState(false);\r\n const [cboProjectLoading, setCboProjectLoading] = useState(false);\r\n const [cboOrgChartLoading, setCboOrgChartLoading] = useState(false);\r\n const [cboSalEmpGroupLoading, setCboSalEmpGroupLoading] = useState(false);\r\n const [cboShiftLoading, setCboShiftLoading] = useState(false);\r\n const [gridLoading, setGridLoading] = useState(false);\r\n const [cboAppStatusLoading, setCboAppStatusLoading] = useState(false);\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [isShowSelected, setIsShowSelected] = useState(false);\r\n const [iPermissionByTab, setIPermissionByTab] = useState(0);\r\n const [dataCboAppStatus, setDataCboAppStatus] = useState([]);\r\n const [loadingCriteria, setLoadingCriteria] = useState(false);\r\n\r\n const filterCboEmployees = useRef({\r\n search: \"\",\r\n skip: 0,\r\n limit: 50\r\n });\r\n const refGrid = useRef(null);\r\n const paramsPaging = useRef({\r\n skip: 0,\r\n limit: 20,\r\n });\r\n const refSelectedRowsData = useRef([]);\r\n const refSelectedRowKeys = useRef([]);\r\n const isSelectAll = useRef(false);\r\n const isChangePage = useRef(false);\r\n const isChangeShow = useRef(false);\r\n const isFilter = useRef(false);\r\n const refBtn = useRef(null);\r\n const timer = useRef(0);\r\n const conditionsSelectedRow = useRef([0, 4, 5]);\r\n\r\n const loadPermission = () => {\r\n dispatch(generalActions.getPermission(\"W29F2300\", isPer => {\r\n setIPermission(isPer);\r\n }));\r\n };\r\n\r\n const loadPermissionByTab = (formID) => {\r\n dispatch(generalActions.getPermission(formID, isPer => {\r\n setIPermissionByTab(isPer);\r\n }, true));\r\n };\r\n\r\n const loadCboDuty = () => {\r\n setCboDutyLoading(true);\r\n dispatch(generalActions.getCboDuty2((error) => {\r\n setCboDutyLoading(false);\r\n if (error) {\r\n Config.popup.show('ERROR', error);\r\n return false;\r\n }\r\n }));\r\n };\r\n\r\n const loadDataOrgChart = () => {\r\n setCboOrgChartLoading(true);\r\n dispatch(generalActions.getOrgCharts({}, (error, data) => {\r\n setCboOrgChartLoading(false);\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n setDataOrgChart(data || []);\r\n }));\r\n };\r\n\r\n const loadCboProjects = () => {\r\n const params = {\r\n HostID: \"\",\r\n FormID: FormID,\r\n };\r\n setCboProjectLoading(true);\r\n dispatch(generalActions.getCboProjects(params, error => {\r\n setCboProjectLoading(false);\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n }));\r\n };\r\n\r\n const loadCboAppStatus = () => {\r\n const params = {\r\n FormID,\r\n Language\r\n };\r\n setCboAppStatusLoading(true);\r\n dispatch(generalActions.getCboAppStatus(params, (err) => {\r\n setCboAppStatusLoading(false);\r\n if (err) {\r\n Config.popup.show(\"ERROR\", err);\r\n return false;\r\n }\r\n }))\r\n };\r\n\r\n const loadCboEmployees = (isReset) => {\r\n const param = {\r\n HostID: \"\",\r\n Type: \"EmployeeID\",\r\n FormID: FormID,\r\n Language: Config.language || \"84\",\r\n skip: filterCboEmployees.current.skip,\r\n limit: filterCboEmployees.current.limit,\r\n search: filterCboEmployees.current.search,\r\n };\r\n setCboCboEmployeesLoading(true);\r\n dispatch(generalActions.getCboEmployees(param, (error, data) => {\r\n setCboCboEmployeesLoading(false);\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n const rows = data?.rows || [];\r\n const total = data?.total || 0;\r\n setDataCboEmployees({\r\n rows: isReset ? rows : dataCboEmployees.rows.concat(rows),\r\n total: total,\r\n });\r\n }));\r\n };\r\n\r\n const loadCboShift = () => {\r\n const params = {\r\n DivisionID: Config.getDivisionID(),\r\n OrgChartID: \"\",\r\n WorkDayType: \"\",\r\n AfterOTHours: 0,\r\n Language: Language,\r\n ProjectID: \"\",\r\n };\r\n setCboShiftLoading(true);\r\n dispatch(W29F2300Actions.getCboShift(params,(error) => {\r\n setCboShiftLoading(false);\r\n if (error) {\r\n Config.popup.show('ERROR', error);\r\n return false;\r\n }\r\n }));\r\n };\r\n\r\n const loadSalaryGroup = () => {\r\n setCboSalEmpGroupLoading(true);\r\n dispatch(W29F2300Actions.getSalaryGroups({},error => {\r\n setCboSalEmpGroupLoading(false);\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n }));\r\n };\r\n\r\n const loadCriteria = () => {\r\n const params = {\r\n FormID: FormID,\r\n Language: Language,\r\n Mode: 0,\r\n };\r\n setLoadingCriteria(true);\r\n dispatch(W29F2300Actions.getCriteria(params, (error, data) => {\r\n setLoadingCriteria(false);\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n // xet default data button hien thi theo tung tab\r\n const dataColumn = data?.flatMap(m => m.GrpCriteria).reduce((obj, item) => {\r\n obj = {...obj, [`W29F2300_${item.CriteriaID}`]: dataColumnGridExtra()};\r\n return obj;\r\n }, {});\r\n setDataGridExtraByCriteriaID({...dataColumn})\r\n }));\r\n };\r\n\r\n const loadGrid = (isLoadGrid = false) => {\r\n if(!isLoadGrid) {\r\n isChangePage.current = true;\r\n }\r\n const params = {\r\n FormID: FormID,\r\n Language: Language,\r\n Mode: 0,\r\n CriteriaID: String(criteriaID),\r\n WorkingDayFrom: rangeDate?.length > 0 ? rangeDate[0] : null,\r\n WorkingDayTo: rangeDate?.length > 0 ? rangeDate[1] : null,\r\n OrgChartID: dataFilter?.OrgChartID.length > 0 ? JSON.stringify(dataFilter.OrgChartID) : \"\",\r\n SalEmpGroupID: dataFilter.SalEmpGroupID,\r\n DutyID: dataFilter.DutyID,\r\n ProjectID: dataFilter.ProjectID,\r\n ShiftID: dataFilter.ShiftID,\r\n StatusID: String(dataFilter.StatusID),\r\n EmployeeID: dataFilter.EmployeeID,\r\n skip: paramsPaging.current.skip,\r\n limit: paramsPaging.current.limit,\r\n\r\n };\r\n setGridLoading(true);\r\n dispatch(W29F2300Actions.getGridDetail(params, (error, data) => {\r\n setGridLoading(false);\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n let dataStatus = _.sortBy(_.uniqBy(data?.rows, d => d.StatusID), s => s.StatusID)\r\n .map(d => ({StatusID: d.StatusID, StatusName: d.StatusName}));\r\n setDataCboAppStatus(dataStatus);\r\n setDataGrid({rows: data?.rows || [], total: data?.total || 0});\r\n if(isFilter.current) {\r\n isFilter.current = false;\r\n resetData();\r\n }\r\n }));\r\n };\r\n\r\n const onSave = () => {\r\n const params = {\r\n FormID: FormID,\r\n Language: Language,\r\n Mode: 0,\r\n CriteriaID: criteriaID,\r\n data: refSelectedRowsData.current.length > 0 ? JSON.stringify(refSelectedRowsData.current) : \"\"\r\n };\r\n setIsSaving(true);\r\n dispatch(W29F2300Actions.save(params, (error, data) => {\r\n setIsSaving(false);\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n if(data.Status === 1) {\r\n if(data.MsgAsk === 0) {\r\n Config.popup.show('INFO', data.Message);\r\n return false;\r\n }\r\n }\r\n if(data.Status === 0) {\r\n Config.notify.show('success', Config.lang(\"Thong_bao_thanh_cong\"), 2000);\r\n resetData();\r\n loadGrid(true);\r\n }\r\n }));\r\n };\r\n\r\n useEffect(() => {\r\n loadPermission();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n },[]);\r\n\r\n useEffect(() => {\r\n if(!iPermission) return;\r\n loadCriteria();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [iPermission]);\r\n\r\n useEffect(() => {\r\n if(criteriaID !== null) {\r\n loadGrid(true);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [criteriaID]);\r\n\r\n useEffect(() => {\r\n if(!dataFilter.StatusID) _setDataFilter({StatusID: 0});\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n },[dataFilter.StatusID]);\r\n\r\n useEffect(() => {\r\n if (isShowSelected) refGrid.current.instance.filter('IsSelected','=',1);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n },[isShowSelected]);\r\n\r\n useEffect(() => {\r\n setDisableBtnNotify();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [iPermissionByTab, isSaving, gridLoading, loadingCriteria]);\r\n\r\n const _setDataFilter = (obj) => {\r\n setDataFilter({...dataFilter, ...obj});\r\n };\r\n\r\n const filterChange = (key, evt) => {\r\n if(!key || !evt) return;\r\n const value = evt?.value ?? evt?.target?.value ?? \"\";\r\n if(key === \"RangePicker\") {\r\n const workingDayFrom = Array.isArray(value) ? value[0] : null;\r\n const workingDayTo = Array.isArray(value) ? value[1] : null;\r\n setRangeDate([workingDayFrom, workingDayTo]);\r\n } else {\r\n _setDataFilter({[key]: value});\r\n }\r\n };\r\n\r\n const setDataSelectedRowKeys = (e = {}, keyCompareChecked) => {\r\n const {currentSelectedRowKeys, selectedRowsData} = e;\r\n let deselectRowsKey = [];\r\n currentSelectedRowKeys.map(key => {\r\n if(refSelectedRowKeys.current.indexOf(key) < 0) {\r\n e.component.byKey(key).done(item => {\r\n // đk để bỏ chọn những dòng disabled\r\n if(!conditionsSelectedRow.current.includes(Number(item[keyCompareChecked]))) {\r\n deselectRowsKey.push(key);\r\n } else {\r\n const rowData = selectedRowsData.find(f => f.TransID === key);\r\n if(rowData) {\r\n refSelectedRowsData.current.push(rowData);\r\n }\r\n refSelectedRowKeys.current.push(key);\r\n }\r\n });\r\n }\r\n return key;\r\n });\r\n if(deselectRowsKey.length > 0) {\r\n e.component.deselectRows(deselectRowsKey);\r\n }\r\n };\r\n\r\n const onSelectionChanged = (e) => {\r\n // khi change page khong cho DeselectedRowKeys\r\n if(isChangePage.current) {\r\n isChangePage.current = false;\r\n return false;\r\n }\r\n // case: khi có data SelectedRowKeys => changepage => click checkbox isShowSelected => changepage => thì khong cho DeselectedRowKeys\r\n if(isChangeShow.current) {\r\n isChangeShow.current = false;\r\n return false;\r\n }\r\n const {currentSelectedRowKeys, selectedRowKeys, currentDeselectedRowKeys} = e;\r\n const total = e.component.totalCount();\r\n // su ly SelectAll và deselectAll\r\n if ((selectedRowKeys.length === total || selectedRowKeys.length === 0) && isSelectAll.current) {\r\n if (selectedRowKeys.length === total) e.component.deselectAll();\r\n if (selectedRowKeys.length === 0) isSelectAll.current = false;\r\n }\r\n isSelectAll.current = selectedRowKeys.length && (selectedRowKeys.length + currentDeselectedRowKeys.length) === total;\r\n // su ly chon tung dong\r\n if(currentDeselectedRowKeys.length > 0) {\r\n\r\n currentDeselectedRowKeys.map(key => {\r\n if(refSelectedRowKeys.current.includes(key) && refSelectedRowsData.current.length > 0) {\r\n refSelectedRowsData.current = refSelectedRowsData.current.filter(f => f.TransID !== key);\r\n refSelectedRowKeys.current = refSelectedRowKeys.current.filter(f => f !== key);\r\n }\r\n return key;\r\n });\r\n }\r\n else if(currentSelectedRowKeys.length > 0) {\r\n setDataSelectedRowKeys(e,\"StatusID\");\r\n }\r\n };\r\n\r\n const onChangePage = (page) => {\r\n paramsPaging.current.skip = page * paramsPaging.current.limit;\r\n loadGrid();\r\n };\r\n\r\n const onChangePerPage = (perPage) => {\r\n paramsPaging.current.skip = 0;\r\n paramsPaging.current.limit = perPage;\r\n loadGrid();\r\n };\r\n\r\n const resetData = () => {\r\n refSelectedRowsData.current = [];\r\n refSelectedRowKeys.current = [];\r\n isChangeShow.current = false;\r\n isChangePage.current = false;\r\n isSelectAll.current = false;\r\n isFilter.current = false;\r\n setIsShowSelected(false);\r\n };\r\n\r\n const onChangeTabItem = (dt) => {\r\n const {FormIDPermission, CriteriaID} = dt || {};\r\n loadPermissionByTab(FormIDPermission);\r\n resetData();\r\n setCriteriaID(Number(CriteriaID));\r\n };\r\n\r\n //true: Con key chua duoc select; false: da select het..\r\n const _checkSelectedRowsKeys = (dataSource) => {\r\n let isCheck = false;\r\n if (dataSource?.length > 0 && refSelectedRowKeys.current.length > 0) {\r\n const dataKeys = dataSource.map(d => d.TransID);\r\n for (let key of refSelectedRowKeys.current) {\r\n if (!dataKeys.includes(key)) {\r\n isCheck = true;\r\n break;\r\n }\r\n }\r\n }\r\n return isCheck;\r\n };\r\n\r\n const onLoadDataFilter = () => {\r\n loadDataOrgChart();\r\n loadCboDuty();\r\n loadCboProjects();\r\n loadCboEmployees();\r\n loadSalaryGroup();\r\n loadCboShift();\r\n loadCboAppStatus();\r\n };\r\n\r\n const renderFilter = () => {\r\n return (\r\n {\r\n return (\r\n <>\r\n \r\n \r\n filterChange(\"RangePicker\", evt)}\r\n placeholder={\"DD/MM/YY - DD/MM/YY\"}\r\n returnFormat={\"YYYY-MM-DD\"}\r\n />\r\n \r\n \r\n filterChange(\"OrgChartID\", e)}\r\n value={dataFilter.OrgChartID}\r\n viewType={'outlined'}\r\n placeholder={Config.lang(\"Co_cau_to_chuc\")}\r\n >\r\n filterChange(\"OrgChartID\", e)}\r\n parentID={\"OrgChartParentID\"}\r\n value={dataFilter.OrgChartID}\r\n valueExpr={\"OrgChartID\"}\r\n />\r\n \r\n \r\n \r\n filterChange(\"SalEmpGroupID\", evt)}\r\n />\r\n \r\n \r\n filterChange(\"DutyID\", evt)}\r\n />\r\n \r\n \r\n filterChange(\"ProjectID\", evt)}\r\n />\r\n \r\n \r\n filterChange(\"ShiftID\", evt)}\r\n />\r\n \r\n \r\n filterChange(\"StatusID\", evt)}\r\n />\r\n \r\n \r\n filterChange(\"EmployeeID\", e)}\r\n onInput={(e) => {\r\n filterCboEmployees.current.search = e.target.value;\r\n filterCboEmployees.current.skip = 0;\r\n loadCboEmployees(true);\r\n }}\r\n onLoadMore={(e) => {\r\n filterCboEmployees.current.skip = e.skip;\r\n filterCboEmployees.current.limit = e.limit;\r\n loadCboEmployees();\r\n }}\r\n />\r\n \r\n \r\n
\r\n {\r\n isFilter.current = true;\r\n loadGrid(true)\r\n }}\r\n />\r\n
\r\n \r\n );\r\n }}\r\n />\r\n );\r\n };\r\n\r\n const cellRenderStatus = (e) => {\r\n const {data} = e.row;\r\n return ;\r\n };\r\n\r\n const renderButton = useMemo(() => {\r\n const _FormID = `W29F2300_${criteriaID}`;\r\n const data = dataGridExtraByCriteriaID[_FormID];\r\n return {\r\n setDataGridExtraByCriteriaID({\r\n ...dataGridExtraByCriteriaID,\r\n [_FormID]: data,\r\n });\r\n if (refGrid.current) refGrid.current.instance.repaint();\r\n }}\r\n />;\r\n },[dataGridExtraByCriteriaID, criteriaID, isSaving, gridLoading, loadingCriteria]);\r\n\r\n const setDisableBtnNotify = () => {\r\n let isDisabled =\r\n iPermissionByTab <= 1 ||\r\n isSaving ||\r\n gridLoading ||\r\n loadingCriteria;\r\n const hasSelectedRow = refSelectedRowKeys.current.length > 0;\r\n if(refBtn.current?.instance) {\r\n refBtn.current.instance.option(\"disabled\", isDisabled || !hasSelectedRow);\r\n }\r\n };\r\n\r\n const dataGridExtra = dataGridExtraByCriteriaID[`W29F2300_${criteriaID}`];\r\n let _dataGrid = dataGrid.rows;\r\n if(isShowSelected) {\r\n if (refSelectedRowsData.current.length > 0) {\r\n const selectedRows = refGrid.current && refGrid.current.instance.getSelectedRowKeys();\r\n _dataGrid = refSelectedRowsData.current;\r\n // kiem tra hiển thị những dòng đã check và reset các biến bằng false cho Deselected Row Keys ở hàm onSelectionChanged\r\n if(selectedRows.length === refSelectedRowKeys.current.length) {\r\n isChangeShow.current = false;\r\n isSelectAll.current = false;\r\n }\r\n }\r\n } else if(isChangeShow.current) {\r\n // kiem tra trường hợp reset isChangeShow.current khi changepage chưa chọn dòng trên lưới sau đó click rồi bỏ click checkbox isShowSelected\r\n if(!_checkSelectedRowsKeys(_dataGrid)) isChangeShow.current = false;\r\n }\r\n _dataGrid = _dataGrid.map(d => ({...d, IsSelected: d.IsSelected ?? 0}));\r\n if (iPermission <= 0) return null;\r\n return (\r\n <>\r\n \r\n
{renderFilter()}
\r\n \r\n \r\n
\r\n {getCriteria.length > 0 && getCriteria.map((m, idx) => {\r\n return (\r\n \r\n {m.GrpCriteriaName}\r\n \r\n \r\n \r\n {m.GrpCriteria.length > 0 && m.GrpCriteria.map(f => {\r\n return onChangeTabItem(f)}\r\n index={Number(f.CriteriaID)}\r\n label={`(${f.NumCriteria}) ${f.CriteriaName}`} />\r\n })}\r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n\r\n
\r\n \r\n \r\n
\r\n {\r\n isChangeShow.current = true;\r\n if(isChangePage.current) {\r\n isChangePage.current = false;\r\n }\r\n setIsShowSelected(e.value);\r\n }}\r\n disabled={isSaving || gridLoading || loadingCriteria}\r\n label={Config.lang(\"Chi_hien_thi_nhung_du_lieu_da_chon\")}\r\n />\r\n
\r\n {renderButton}\r\n \r\n
\r\n
\r\n {dataGridExtra?.length > 0 &&\r\n refGrid.current = ref}\r\n dataSource={_dataGrid}\r\n totalItems={dataGrid.total}\r\n itemPerPage={paramsPaging.current.limit}\r\n skipPerPage={paramsPaging.current.skip}\r\n filterRow={{\r\n visible : true,\r\n showOperationChooser: false,\r\n }}\r\n selection={{\r\n mode : 'multiple',\r\n selectAllMode : 'allPages',\r\n showCheckBoxesMode: 'always',\r\n }}\r\n loading={gridLoading}\r\n pagerFullScreen={false}\r\n columnAutoWidth={true}\r\n height={\"calc(100vh - 230px)\"}\r\n showColumnLines={true}\r\n typePaging={\"remote\"}\r\n onSelectionChanged={onSelectionChanged}\r\n onContentReady={(e) => {\r\n setDisableBtnNotify();\r\n if(timer.current) clearTimeout(timer.current);\r\n timer.current = setTimeout(() => {\r\n e.component.selectRows(refSelectedRowKeys.current)\r\n }, 300)\r\n }}\r\n onChangePage={onChangePage}\r\n onChangePerPage={onChangePerPage}\r\n onEditorPreparing={(e) => {\r\n if (!e || !e.row) return;\r\n const { data } = e.row;\r\n if (e.parentType === \"dataRow\") {\r\n if ((!conditionsSelectedRow.current.includes(Number(data?.StatusID)))) {\r\n e.editorOptions.disabled = true;\r\n } else {\r\n e.editorOptions.onValueChanged = (evt) => {\r\n e.row.data.IsSelected = +evt.value;\r\n //refresh để chạy hàm filter lưới\r\n e.component.refresh();\r\n }\r\n }\r\n }\r\n }}\r\n >\r\n {dataGridExtra?.map((item, idx) => {\r\n if (item.hasOwnProperty('isRenderStatus')) {\r\n return (\r\n \r\n )\r\n } else {\r\n return (\r\n \r\n )\r\n }\r\n })}\r\n \r\n \r\n \r\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 W29F2300;\r\n","import React, { useEffect, useState, useRef, useMemo } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport * as GeneralActions from \"../../../../redux/general/general_actions\";\r\nimport * as W29F2120Actions from \"../../../../redux/W2X/W29F2120/W29F2120_actions\";\r\nimport {\r\n Dropdown,\r\n Checkbox,\r\n Col,\r\n Row,\r\n Chip,\r\n TreeView,\r\n DateRangePicker,\r\n Typography,\r\n NumberInput,\r\n ButtonIcon,\r\n} from \"diginet-core-ui/components\";\r\nimport { makeStyles } from \"diginet-core-ui/theme\";\r\nimport Config from \"../../../../config\";\r\nimport GridContainer from \"../../../grid-container/grid-container\";\r\nimport { Column, Summary, TotalItem } from \"devextreme-react/data-grid\";\r\nimport moment from \"moment\";\r\nimport ActionToolbar from \"../../../common/toolbar/action-toolbar\";\r\nimport ButtonGeneral from \"../../../common/button/button-general\";\r\nimport Filter from \"../../../filter/filter\";\r\nimport { Loading } from \"../../../common/loading/loading\";\r\nimport History from \"../../../libs/history\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n bgRowEdit: {\r\n background: theme.colors.warning,\r\n },\r\n verticalHeader: {\r\n padding: `${theme.spacing([15, 0, 15])}!important`,\r\n \"& .dx-datagrid-text-content\": {\r\n transform: \"rotate(-90deg)\",\r\n transformOrigin: \"50% 50%\",\r\n },\r\n },\r\n textPreLine: {\r\n \"& .dx-datagrid-text-content\": {\r\n whiteSpace: \"pre-line !important\",\r\n },\r\n },\r\n txtRed: {\r\n color: `${theme.colors.danger}`\r\n }\r\n}));\r\n\r\nconst W29F2120 = props => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const [dataOrgChart, setDataOrgChart] = useState([]);\r\n const [dataCboEmployees, setDataCboEmployees] = useState({ rows: [], total: 0 });\r\n const [dataCboProjects, setDataCboProjects] = useState({ rows: [], total: 0 });\r\n const [dataCboPeriod, setDataCboPeriod] = useState([]);\r\n const [dataLeaveType, setDataLeaveType] = useState([]);\r\n const [dataGrid, setDataGrid] = useState({ rows: [], total: 0 });\r\n const [dataColumns, setDataColumns] = useState([]);\r\n const [loadingCboEmployees, setLoadingCboEmployees] = useState(false);\r\n const [loadingProjects, setLoadingProjects] = useState(false);\r\n const [loadingGrid, setLoadingGrid] = useState(false);\r\n const [isWeek, setIsWeek] = useState(true);\r\n const [rangeDate, setRangeDate] = useState([]);\r\n const [periodTime, setPeriodTime] = useState(\"\");\r\n const [iPermission, setIPermission] = useState(0);\r\n\r\n const filterGrid = useRef({\r\n OrgChartID: \"\",\r\n ProjectID: \"\",\r\n EmployeeID: \"\",\r\n skip: 0,\r\n limit: 15,\r\n });\r\n const filterCboEmployees = useRef({\r\n skip: 0,\r\n limit: 50,\r\n strSearch: \"\",\r\n });\r\n\r\n const filterCboProjects = useRef({\r\n strSearch: \"\",\r\n skip: 0,\r\n limit: 50,\r\n });\r\n const dataDateByTrans = useRef({\r\n MinDate: null,\r\n MaxDate: null,\r\n });\r\n\r\n const isWeekChecked = useRef(false);\r\n const isChangedRangeDate = useRef(false);\r\n const refDataGrid = useRef(null);\r\n const listCheckEmployeeUpdated = useRef([]);\r\n const oldDataGrid = useRef([]);\r\n const listFieldRemove = useRef([\"IsEdit\", \"IsUpdated\", \"QuantityLeave\", \"ReadOnly\"]);\r\n const dataFieldEditing = useRef(\"\");\r\n const loadPermission = () => {\r\n dispatch(\r\n GeneralActions.getPermission(\"W29F2120\", isPer => {\r\n setIPermission(isPer);\r\n })\r\n );\r\n };\r\n\r\n const loadCboEmployees = isReset => {\r\n const param = {\r\n Type: \"EmployeeID\",\r\n FormID: \"W29F2120\",\r\n Language: Config.language || \"84\",\r\n skip: filterCboEmployees.current.skip,\r\n limit: filterCboEmployees.current.limit,\r\n search: filterCboEmployees.current.strSearch,\r\n };\r\n setLoadingCboEmployees(true);\r\n dispatch(\r\n GeneralActions.getCboEmployees(param, (err, data) => {\r\n setLoadingCboEmployees(false);\r\n if (err) return Config.popup.show(\"ERROR\", err);\r\n if (data) {\r\n const rows = data?.rows ?? data;\r\n const total = data?.total ?? data?.length;\r\n setDataCboEmployees({\r\n rows: isReset ? rows : dataCboEmployees.rows.concat(rows),\r\n total,\r\n });\r\n }\r\n })\r\n );\r\n };\r\n\r\n const loadCboPeriod = () => {\r\n const params = {\r\n DivisionID: Config.getDivisionID(),\r\n };\r\n dispatch(\r\n GeneralActions.getCboPeriod(params, (errors, data) => {\r\n if (errors) {\r\n Config.popup.show(\"ERROR\", errors);\r\n return false;\r\n }\r\n setPeriodTime(data?.[0]?.PeriodTime || \"\");\r\n setDataCboPeriod(data || []);\r\n })\r\n );\r\n };\r\n\r\n const loadCboProjects = isReset => {\r\n const param = {\r\n HostID: \"\",\r\n FormID: \"W29F2120\",\r\n Language: Config.language || \"84\",\r\n skip: filterCboProjects.current.skip,\r\n limit: filterCboProjects.current.limit,\r\n search: filterCboProjects.current.strSearch,\r\n };\r\n setLoadingProjects(true);\r\n dispatch(\r\n GeneralActions.getCboProjects(param, (error, data) => {\r\n setLoadingProjects(false);\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n if (data) {\r\n const rows = data && data.rows ? data.rows : data;\r\n const total = data && data.total ? data.total : data.length;\r\n setDataCboProjects({\r\n rows: isReset ? rows : dataCboProjects.rows.concat(rows),\r\n total: total,\r\n });\r\n }\r\n })\r\n );\r\n };\r\n\r\n const loadDateByTrans = (TranMonth, TranYear) => {\r\n const _TranMonth = TranMonth || Config.profile.TranMonth || moment().format(\"M\");\r\n const _TranYear = TranYear || Config.profile.TranYear || moment().format(\"YYYY\");\r\n const params = {\r\n TranMonth: _TranMonth,\r\n TranYear: _TranYear,\r\n };\r\n dispatch(\r\n GeneralActions.getDateByTrans(params, (errors, data) => {\r\n if (errors) {\r\n Config.popup.show(\"ERROR\", errors);\r\n return false;\r\n }\r\n let maxDate = data?.MaxDate || moment().endOf(\"week\").format(\"YYYY-MM-DD\");\r\n let minDate = data?.MinDate || moment().startOf(\"week\").format(\"YYYY-MM-DD\");\r\n if (isWeek) {\r\n maxDate = moment(minDate).endOf(\"week\").format(\"YYYY-MM-DD\");\r\n }\r\n dataDateByTrans.current.MinDate = minDate;\r\n dataDateByTrans.current.MaxDate = data?.MaxDate || moment().endOf(\"week\").format(\"YYYY-MM-DD\");\r\n isChangedRangeDate.current = true;\r\n setRangeDate([minDate, maxDate]);\r\n })\r\n );\r\n };\r\n\r\n const loadDataOrgChart = () => {\r\n dispatch(\r\n GeneralActions.getOrgCharts({}, (err, data) => {\r\n if (err) {\r\n Config.popup.show(\"ERROR\", err);\r\n return false;\r\n }\r\n if (data) {\r\n setDataOrgChart(data);\r\n }\r\n })\r\n );\r\n };\r\n\r\n const loadLeaveType = () => {\r\n const params = {\r\n FormID: \"W29F2120\",\r\n Mode: 0,\r\n };\r\n dispatch(\r\n W29F2120Actions.loadLeaveType(params, (error, data) => {\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n setDataLeaveType(data || []);\r\n })\r\n );\r\n };\r\n\r\n const getFieldName = (field = \"\", attendanceDate) => {\r\n return `${field}_${Config.convertDate(attendanceDate, \"\", \"YYYYMMDD\")}`;\r\n };\r\n\r\n const loadTimeKeeping = () => {\r\n const params = {\r\n FormID: \"W29F2120\",\r\n Mode: 0,\r\n AttendanceDateFrom: rangeDate?.[0] || null,\r\n AttendanceDateTo: rangeDate?.[1] || null,\r\n OrgChartID: filterGrid.current.OrgChartID || \"\",\r\n ProjectID: filterGrid.current.ProjectID,\r\n EmployeeID: filterGrid.current.EmployeeID,\r\n skip: filterGrid.current.skip,\r\n limit: filterGrid.current.limit,\r\n };\r\n setLoadingGrid(true);\r\n dispatch(\r\n W29F2120Actions.loadTimeKeeping(params, (error, data) => {\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n setLoadingGrid(false);\r\n if (data?.rows?.length > 0) {\r\n let sortDate = data.rows.sort((left, right) => {\r\n return moment(left.AttendanceDate).diff(moment(right.AttendanceDate));\r\n });\r\n\r\n moment.locale(\"en\");\r\n const columns = [];\r\n let _dataGrid = [];\r\n for (let i = 0; i < sortDate.length; i++) {\r\n // phần tạo data lưới\r\n const infoEmployee = {\r\n EmployeeName: sortDate[i].EmployeeName,\r\n EmployeeID: sortDate[i].EmployeeID,\r\n [getFieldName(\"AttendanceDate\", sortDate[i].AttendanceDate)]: Config.convertDate(\r\n sortDate[i].AttendanceDate,\r\n \"\",\r\n \"YYYY-MM-DD\"\r\n ),\r\n [getFieldName(\"NumLeave\", sortDate[i].AttendanceDate)]: sortDate[i].NumLeave,\r\n [getFieldName(\"DayShift\", sortDate[i].AttendanceDate)]: sortDate[i].DayShift,\r\n [getFieldName(\"NightShift\", sortDate[i].AttendanceDate)]: sortDate[i].NightShift,\r\n [getFieldName(\"FirstSolar\", sortDate[i].AttendanceDate)]: sortDate[i].FirstSolar,\r\n [getFieldName(\"RopeAccess\", sortDate[i].AttendanceDate)]: sortDate[i].RopeAccess,\r\n [getFieldName(\"TTMB\", sortDate[i].AttendanceDate)]: sortDate[i].TTMB,\r\n [getFieldName(\"TimeOn\", sortDate[i].AttendanceDate)]: sortDate[i].TimeOn,\r\n [getFieldName(\"TimeOff\", sortDate[i].AttendanceDate)]: sortDate[i].TimeOff,\r\n [getFieldName(\"IsEdit\", sortDate[i].AttendanceDate)]: sortDate[i].IsEdit,\r\n [getFieldName(\"ReadOnly\", sortDate[i].AttendanceDate)]: sortDate[i].ReadOnly,\r\n [getFieldName(\"QuantityLeave\", sortDate[i].AttendanceDate)]: sortDate[i].QuantityLeave,\r\n [getFieldName(\"IsUpdated\", sortDate[i].AttendanceDate)]: false,\r\n [getFieldName(\"TransID\", sortDate[i].AttendanceDate)]: sortDate[i].TransID,\r\n };\r\n const idxEmployee = _dataGrid.findIndex(d => d.EmployeeID === sortDate[i]?.EmployeeID);\r\n if (idxEmployee >= 0) {\r\n _dataGrid[idxEmployee] = { ...infoEmployee, ..._dataGrid[idxEmployee] };\r\n } else {\r\n _dataGrid.push(infoEmployee);\r\n }\r\n\r\n // phần sử lý data cột\r\n const idxCol = columns.findIndex(\r\n d => d.AttendanceDate === Config.convertDate(sortDate[i].AttendanceDate, \"\", \"YYYYMMDD\")\r\n );\r\n if (idxCol < 0) {\r\n columns.push({\r\n AttendanceDate: Config.convertDate(sortDate[i].AttendanceDate, \"\", \"YYYYMMDD\"),\r\n dayOfWeek: `${Config.convertDate(sortDate[i].AttendanceDate, \"\", \"dddd\")}`,\r\n caption: `${Config.convertDate(sortDate[i].AttendanceDate, \"\", \"dddd - DD/MM/YYYY\")}`,\r\n columns: [\r\n // {\r\n // isRorateText: true,\r\n // alignment: \"center\",\r\n // caption: \"Phép/Leave\",\r\n // width: 100,\r\n // // height: 250,\r\n // dataField: getFieldName(\"NumLeave\", sortDate[i].AttendanceDate),\r\n // AttendanceDate: moment(sortDate[i].AttendanceDate).format(\"YYYYMMDD\"),\r\n // },\r\n {\r\n isRorateText: true,\r\n alignment: \"center\",\r\n caption: \"Phép/Leave\",\r\n width: 100,\r\n isCellDecimal: true,\r\n dataField: getFieldName(\"QuantityLeave\", sortDate[i].AttendanceDate),\r\n AttendanceDate: Config.convertDate(sortDate[i].AttendanceDate, \"\", \"YYYYMMDD\"),\r\n },\r\n {\r\n isRorateText: true,\r\n caption: \"Day shift\",\r\n alignment: \"center\",\r\n width: 100,\r\n isCellDecimal: true,\r\n dataField: getFieldName(\"DayShift\", sortDate[i].AttendanceDate),\r\n AttendanceDate: Config.convertDate(sortDate[i].AttendanceDate, \"\", \"YYYYMMDD\"),\r\n },\r\n {\r\n isRorateText: true,\r\n caption: \"Night shift\",\r\n alignment: \"center\",\r\n width: 100,\r\n isCellDecimal: true,\r\n dataField: getFieldName(\"NightShift\", sortDate[i].AttendanceDate),\r\n AttendanceDate: Config.convertDate(sortDate[i].AttendanceDate, \"\", \"YYYYMMDD\"),\r\n },\r\n {\r\n isRorateText: true,\r\n caption: \"First Solar (25%)\",\r\n alignment: \"center\",\r\n width: 100,\r\n isCellDecimal: true,\r\n dataField: getFieldName(\"FirstSolar\", sortDate[i].AttendanceDate),\r\n AttendanceDate: Config.convertDate(sortDate[i].AttendanceDate, \"\", \"YYYYMMDD\"),\r\n },\r\n {\r\n isRorateText: true,\r\n caption: \"Rope Access (50%)\",\r\n alignment: \"center\",\r\n width: 100,\r\n isCellDecimal: true,\r\n dataField: getFieldName(\"RopeAccess\", sortDate[i].AttendanceDate),\r\n AttendanceDate: Config.convertDate(sortDate[i].AttendanceDate, \"\", \"YYYYMMDD\"),\r\n },\r\n {\r\n isRorateText: true,\r\n isPreLineText: true,\r\n caption: \"TSA/ TSZ/Met mast/ Blade repair(30%)\",\r\n alignment: \"center\",\r\n width: 130,\r\n isCellDecimal: true,\r\n dataField: getFieldName(\"TTMB\", sortDate[i].AttendanceDate),\r\n AttendanceDate: Config.convertDate(sortDate[i].AttendanceDate, \"\", \"YYYYMMDD\"),\r\n },\r\n {\r\n caption: \"Working time\",\r\n alignment: \"center\",\r\n isCellTime: true,\r\n columns: [\r\n {\r\n caption: \"IN\",\r\n alignment: \"center\",\r\n width: 100,\r\n dataField: getFieldName(\"TimeOn\", sortDate[i].AttendanceDate),\r\n AttendanceDate: Config.convertDate(\r\n sortDate[i].AttendanceDate,\r\n \"\",\r\n \"YYYYMMDD\"\r\n ),\r\n },\r\n {\r\n caption: \"OUT\",\r\n alignment: \"center\",\r\n width: 100,\r\n dataField: getFieldName(\"TimeOff\", sortDate[i].AttendanceDate),\r\n AttendanceDate: Config.convertDate(\r\n sortDate[i].AttendanceDate,\r\n \"\",\r\n \"YYYYMMDD\"\r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n caption: \"IsEdit\",\r\n dataField: getFieldName(\"IsEdit\", sortDate[i].AttendanceDate),\r\n visible: false,\r\n },\r\n {\r\n caption: \"ReadOnly\",\r\n dataField: getFieldName(\"ReadOnly\", sortDate[i].AttendanceDate),\r\n visible: false,\r\n },\r\n {\r\n dataField: getFieldName(\"TransID\", sortDate[i].AttendanceDate),\r\n visible: false,\r\n },\r\n ],\r\n });\r\n }\r\n }\r\n\r\n oldDataGrid.current = JSON.parse(JSON.stringify(_dataGrid));\r\n onReset();\r\n setDataColumns(columns);\r\n setDataGrid({ rows: _dataGrid, total: data.total });\r\n }\r\n })\r\n );\r\n };\r\n\r\n const getListEmployee = dataSource => {\r\n let dataEmployee = [];\r\n for (let i = 0; i < listCheckEmployeeUpdated.current.length; i++) {\r\n const _EmployeeID = listCheckEmployeeUpdated.current[i].EmployeeID;\r\n let employeeUpdated = dataSource.find(d => d.EmployeeID === _EmployeeID) || {};\r\n for (let [key, value] of Object.entries(employeeUpdated)) {\r\n // lấy ra các trường theo time AttendanceDate của từng cell\r\n if (key.includes(listCheckEmployeeUpdated.current[i].attendanceDateCell)) {\r\n const keyRemoveTime = key.split(\"_\")?.[0] || \"\";\r\n if (listFieldRemove.current.includes(keyRemoveTime)) continue;\r\n dataEmployee[i] = { ...dataEmployee[i], EmployeeID: _EmployeeID, [keyRemoveTime]: value };\r\n }\r\n }\r\n }\r\n return dataEmployee;\r\n };\r\n\r\n const onSave = () => {\r\n if (refDataGrid.current) {\r\n refDataGrid.current.instance.saveEditData();\r\n const dataSource = refDataGrid.current.instance.option(\"dataSource\");\r\n const dataUpdated = getListEmployee(dataSource);\r\n\r\n const params = {\r\n FormID: \"W29F2120\",\r\n Mode: 0,\r\n data: JSON.stringify(dataUpdated),\r\n };\r\n dispatch(\r\n W29F2120Actions.save(params, async (error, data) => {\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n if (data) {\r\n if (data.Status === 0) {\r\n Config.notify.show(\"success\", Config.lang(\"Luu_thanh_cong\"), 2000);\r\n await saveHistory(dataUpdated);\r\n loadTimeKeeping();\r\n }\r\n }\r\n })\r\n );\r\n }\r\n };\r\n\r\n const saveHistory = async dt => {\r\n if (dt.length > 0) {\r\n const _oldDataGrid = getListEmployee(oldDataGrid.current);\r\n //name Content\r\n const captions = {\r\n AttendanceDate: \"Ngay_cong\",\r\n Employee: \"Nhan_vien\",\r\n NumLeave: \"Phep\",\r\n DayShift: \"DayShift\",\r\n NightShift: \"NightShift\",\r\n FirstSolar: \"FirstSolar \",\r\n TTMB: \"TTMB\",\r\n TimeOn: \"TimeOn\",\r\n TimeOff: \"TimeOff\",\r\n };\r\n\r\n const historyMaster = new History({}); //Init history\r\n\r\n dt.map(d => {\r\n const _dataOldEmployee = _oldDataGrid.find(f => f.EmployeeID === d.EmployeeID) || {};\r\n const options = {\r\n data: d,\r\n dataCompare: _dataOldEmployee,\r\n captions: captions,\r\n action: 1,\r\n ModuleID: \"D29\",\r\n TransID: d.TransID,\r\n TransactionID: \"W29F2120\",\r\n TransactionName: Config.lang(\"Cham_cong\"),\r\n itemRender: (e, type) => {\r\n const { key, data, oldData } = e;\r\n if (type === \"Content\") {\r\n if (key === \"Employee\") {\r\n const employee = oldDataGrid.current.find(f => f.EmployeeID === data.EmployeeID);\r\n data.Employee = `${employee.EmployeeID} - ${employee.EmployeeName}`;\r\n oldData.Employee = `${employee.EmployeeID} - ${employee.EmployeeName}`;\r\n }\r\n }\r\n },\r\n };\r\n const _h = new History(options);\r\n historyMaster.import(_h.get());\r\n return d;\r\n });\r\n\r\n if (historyMaster.get()?.length > 0) {\r\n await historyMaster.save();\r\n onReset();\r\n }\r\n } else {\r\n Config.notify.show(\"error\", Config.lang(\"Luu_lich_su_khong_thanh_cong\"), 2000);\r\n }\r\n };\r\n const onReset = () => {\r\n listCheckEmployeeUpdated.current = [];\r\n };\r\n\r\n useEffect(() => {\r\n loadPermission();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!iPermission) return;\r\n loadCboEmployees();\r\n loadCboProjects();\r\n loadDataOrgChart();\r\n loadLeaveType();\r\n loadCboPeriod();\r\n loadDateByTrans();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [iPermission]);\r\n\r\n useEffect(() => {\r\n if (isWeekChecked.current) {\r\n if (isWeek) {\r\n const maxDate = moment(dataDateByTrans.current.MinDate).endOf(\"week\").format(\"YYYY-MM-DD\");\r\n setRangeDate([dataDateByTrans.current.MinDate, maxDate]);\r\n } else {\r\n setRangeDate([dataDateByTrans.current.MinDate, dataDateByTrans.current.MaxDate]);\r\n }\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [isWeek]);\r\n\r\n useEffect(() => {\r\n if (isChangedRangeDate.current) {\r\n isChangedRangeDate.current = false;\r\n loadTimeKeeping();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [rangeDate]);\r\n\r\n const handleFilterChange = (key, e) => {\r\n const value = e?.value ?? e?.target?.value ?? \"\";\r\n switch (key) {\r\n case \"OrgChartID\":\r\n filterGrid.current.OrgChartID = value;\r\n break;\r\n case \"ProjectID\":\r\n filterGrid.current.ProjectID = value;\r\n break;\r\n case \"EmployeeID\":\r\n filterGrid.current.EmployeeID = value;\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const renderFilter = () => {\r\n return (\r\n (\r\n <>\r\n \r\n \r\n handleFilterChange(\"OrgChartID\", e)}\r\n defaultValue={filterGrid.current.OrgChartID}\r\n viewType={\"outlined\"}\r\n >\r\n handleFilterChange(\"OrgChartID\", e)}\r\n parentID={\"OrgChartParentID\"}\r\n defaultValue={filterGrid.current.OrgChartID}\r\n valueExpr={\"OrgChartID\"}\r\n />\r\n \r\n \r\n \r\n handleFilterChange(\"ProjectID\", e)}\r\n onInput={e => {\r\n filterCboProjects.current.strSearch = e.target.value;\r\n filterCboProjects.current.skip = 0;\r\n loadCboProjects(true);\r\n }}\r\n onLoadMore={e => {\r\n filterCboProjects.current.skip = e.skip;\r\n filterCboProjects.current.limit = e.limit;\r\n loadCboProjects();\r\n }}\r\n />\r\n \r\n \r\n handleFilterChange(\"EmployeeID\", e)}\r\n defaultValue={filterGrid.current.EmployeeID}\r\n viewType={\"outlined\"}\r\n loading={loadingCboEmployees}\r\n onInput={e => {\r\n filterCboEmployees.current.strSearch = e?.target?.value ?? \"\";\r\n filterCboEmployees.current.skip = 0;\r\n loadCboEmployees(true);\r\n }}\r\n onLoadMore={e => {\r\n filterCboEmployees.current.skip = e?.skip ?? 0;\r\n filterCboEmployees.current.limit = e?.limit ?? 10;\r\n loadCboEmployees();\r\n }}\r\n />\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 handleHeaderFilter = (key, e) => {\r\n const value = e?.value ?? e?.target?.value ?? \"\";\r\n switch (key) {\r\n case \"RangeDateHeader\":\r\n const MinDate = Array.isArray(value) ? value[0] : value;\r\n const MaxDate = Array.isArray(value) ? value[1] : value;\r\n setRangeDate([MinDate, MaxDate]);\r\n break;\r\n case \"PeriodTimeHeader\":\r\n loadDateByTrans(e.data.TranMonth, e.data.TranYear);\r\n setPeriodTime(value);\r\n break;\r\n case \"PrevWeek\":\r\n if (isWeek) {\r\n const dateFrom = moment(rangeDate[0]).subtract(1, \"week\").format(\"YYYY-MM-DD\");\r\n const dateTo = moment(dateFrom).endOf(\"week\").format(\"YYYY-MM-DD\");\r\n const _dataForm =\r\n dateFrom < dataDateByTrans.current?.MinDate ? dataDateByTrans.current?.MinDate : dateFrom;\r\n setRangeDate([_dataForm, dateTo]);\r\n } else {\r\n setRangeDate([dataDateByTrans.current.MinDate, rangeDate[1]]);\r\n }\r\n break;\r\n case \"NextWeek\":\r\n if (isWeek) {\r\n const dateFrom = moment(rangeDate[0]).add(1, \"week\").startOf(\"week\").format(\"YYYY-MM-DD\");\r\n const dateTo = moment(dateFrom).endOf(\"week\").format(\"YYYY-MM-DD\");\r\n const _dataTo =\r\n dateTo > dataDateByTrans.current?.MaxDate ? dataDateByTrans.current?.MaxDate : dateTo;\r\n setRangeDate([dateFrom, _dataTo]);\r\n } else {\r\n setRangeDate([rangeDate[1], dataDateByTrans.current.MaxDate]);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const onChangePage = page => {\r\n filterGrid.current.skip = page * filterGrid.current.limit;\r\n loadTimeKeeping();\r\n };\r\n\r\n const onChangePerPage = perPage => {\r\n filterGrid.current.skip = 0;\r\n filterGrid.current.limit = perPage;\r\n loadTimeKeeping();\r\n };\r\n\r\n const cellRenderNumLeave = (evt, dataColumn) => {\r\n if (!evt) return null;\r\n const { data } = evt.row || {};\r\n const cellElement = evt.component.getCellElement(evt.rowIndex, evt.column.dataField);\r\n if (cellElement && data[`IsEdit_${dataColumn.AttendanceDate}`] === 1) {\r\n cellElement.classList.add(...getClassName(classes.bgRowEdit));\r\n }\r\n const listNumLeave = data[`NumLeave_${dataColumn.AttendanceDate}`]?.split(\";\") || [];\r\n return {listNumLeave?.length > 0 ? listNumLeave.join(\"\\n\") : \"\"};\r\n };\r\n\r\n const headerCellRenderNumLeave = evt => {\r\n if (!evt) return null;\r\n return (\r\n \r\n {evt.column.caption}\r\n \r\n );\r\n };\r\n\r\n const getClassName = (className = \"\") => {\r\n const index = className.indexOf(\" \");\r\n const className1 = className.substring(0, index);\r\n const className2 = className.substring(index + 1);\r\n return [className1, className2];\r\n };\r\n\r\n const onEditingStart = e => {\r\n if (!e) return false;\r\n dataFieldEditing.current = e.column.dataField;\r\n if (e.column.AttendanceDate) {\r\n const fieldReadOnly = `ReadOnly_${e.column.AttendanceDate}`;\r\n if (e.data[fieldReadOnly] === 1) {\r\n e.cancel = true;\r\n }\r\n }\r\n };\r\n\r\n const onCellPrepared = e => {\r\n if (!e) return false;\r\n if (e.column.AttendanceDate && e.rowType === \"data\") {\r\n const fieldIsEdit = `IsEdit_${e.column.AttendanceDate}`;\r\n if (e.rowType === \"data\" && e.data[fieldIsEdit] === 1) {\r\n e.cellElement.classList.add(...getClassName(classes.bgRowEdit));\r\n }\r\n }\r\n if (e.rowType === \"header\" && e.column.isRorateText) {\r\n if (e?.column?.isPreLineText) {\r\n e.cellElement.classList.add(\r\n ...getClassName(classes.textPreLine),\r\n ...getClassName(classes.verticalHeader)\r\n );\r\n } else {\r\n e.cellElement.classList.add(...getClassName(classes.verticalHeader));\r\n }\r\n }\r\n };\r\n\r\n const customizeText = data => {\r\n return new Intl.NumberFormat().format(data.value);\r\n };\r\n\r\n const onFocusOut = e => {\r\n if (!e) return null;\r\n let { value } = e.event.target;\r\n if (value === \"__:__\") {\r\n value = ``;\r\n }\r\n if (value && parseInt(value.split(\":\")[0]) > 24) {\r\n value = `24:00`;\r\n }\r\n e.component.option(\"value\", value);\r\n };\r\n\r\n const onInput = e => {\r\n if (!e) return null;\r\n let { value } = e.event.target;\r\n e.component.option(\"value\", value);\r\n if (value.split(\"_\")[0] === \"\") {\r\n value = value.replace(value, \"\");\r\n }\r\n\r\n if (value.split(\"_\").length <= 3) {\r\n value = value.replace(/_/g, \"0\");\r\n }\r\n\r\n if (value.split(\"_\").length === 4 && value[0] !== \"_\") {\r\n const firstLetter = parseInt(value[0]);\r\n value = (firstLetter >= 3 ? `0${firstLetter}` : `${firstLetter}0`) + `:00`;\r\n }\r\n e.component.option(\"value\", value);\r\n };\r\n\r\n const onRowUpdating = e => {\r\n const { newData, oldData } = e;\r\n if (Object.keys(newData).length > 0) {\r\n // attendanceDateCell là giá trị AttendanceDate của từng cell trong group column theo AttendanceDate\r\n const attendanceDateCell = Object.keys(newData)[0].split(\"_\")[1];\r\n const fieldFirstSolar = `FirstSolar_${attendanceDateCell}`;\r\n const fieldRopeAccess = `RopeAccess_${attendanceDateCell}`;\r\n const fieldTTMB = `TTMB_${attendanceDateCell}`;\r\n if(newData.hasOwnProperty(fieldFirstSolar) && dataFieldEditing.current === fieldFirstSolar) {\r\n newData[fieldRopeAccess] = 0;\r\n newData[fieldTTMB] = 0;\r\n }\r\n if(newData.hasOwnProperty(fieldRopeAccess) && dataFieldEditing.current === fieldRopeAccess) {\r\n newData[fieldFirstSolar] = 0;\r\n newData[fieldTTMB] = 0;\r\n }\r\n if(newData.hasOwnProperty(fieldTTMB) && dataFieldEditing.current === fieldTTMB) {\r\n newData[fieldFirstSolar] = 0;\r\n newData[fieldRopeAccess] = 0;\r\n }\r\n newData[`IsUpdated_${attendanceDateCell}`] = true;\r\n const idxEmployeeExist = listCheckEmployeeUpdated.current.findIndex(\r\n d => d.EmployeeID === oldData.EmployeeID && attendanceDateCell === d.attendanceDateCell\r\n );\r\n if (idxEmployeeExist < 0) {\r\n listCheckEmployeeUpdated.current.push({\r\n EmployeeID: oldData.EmployeeID,\r\n [`IsUpdated_${attendanceDateCell}`]: true,\r\n attendanceDateCell: attendanceDateCell,\r\n });\r\n }\r\n }\r\n };\r\n\r\n const gridEmployee = useMemo(() => {\r\n return (\r\n (refDataGrid.current = ref)}\r\n style={{ border: \"none\", overflowX: \"scroll\" }}\r\n dataSource={dataGrid.rows}\r\n totalItems={dataGrid.total}\r\n keyExpr={\"EmployeeID\"}\r\n showRowLines={false}\r\n showBorders={false}\r\n showColumnLines={true}\r\n rowAlternationEnabled={true}\r\n noDataText={Config.lang(\"No_data\")}\r\n hoverStateEnabled={true}\r\n typePaging={\"remote\"}\r\n itemPerPage={filterGrid.current.limit}\r\n skipPerPage={filterGrid.current.skip}\r\n height={Config.getHeightGrid() - 120}\r\n pagerFullScreen={false}\r\n editing={{\r\n mode: \"cell\",\r\n refreshMode: \"reshape\",\r\n allowUpdating: true,\r\n startEditAction: \"click\",\r\n }}\r\n onRowUpdating={onRowUpdating}\r\n onChangePage={onChangePage}\r\n onChangePerPage={onChangePerPage}\r\n onEditingStart={onEditingStart}\r\n onCellPrepared={onCellPrepared}\r\n onRowUpdated={() => {\r\n dataFieldEditing.current = \"\";\r\n }}\r\n >\r\n \r\n {dataColumns.map((item, idx) => (\r\n \r\n {item.hasOwnProperty(\"columns\") &&\r\n item.columns.map((col, idxC) => {\r\n // trường NumLeave là string không thể tính tổng được nên dùng trường QuantityLeave thay thế.\r\n if (col.dataField?.includes(\"QuantityLeave_\")) {\r\n return (\r\n cellRenderNumLeave(evt, col)}\r\n headerCellRender={headerCellRenderNumLeave}\r\n />\r\n );\r\n }\r\n if (col.isCellTime) {\r\n return (\r\n \r\n {col.hasOwnProperty(\"columns\") &&\r\n col.columns.map((colTime, idxT) => {\r\n return (\r\n onFocusOut(e),\r\n onInput: e => onInput(e),\r\n }}\r\n />\r\n );\r\n })}\r\n \r\n );\r\n }\r\n if (col.isCellDecimal) {\r\n return (\r\n {\r\n return (\r\n e.setValue(vl.value)}\r\n />\r\n );\r\n }}\r\n {...col}\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 {dataColumns.map(item => {\r\n return item.columns.map((col, index) => {\r\n return (\r\n \r\n );\r\n });\r\n })}\r\n \r\n \r\n );\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [dataGrid.rows, dataColumns]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n
\r\n onSave()}\r\n />\r\n
\r\n
\r\n {\r\n if (!isWeekChecked.current) {\r\n isWeekChecked.current = true;\r\n }\r\n setIsWeek(e.target.checked);\r\n }}\r\n />\r\n {isWeek && (\r\n \r\n )}\r\n
\r\n {\r\n if (!isChangedRangeDate.current) {\r\n isChangedRangeDate.current = true;\r\n }\r\n handleHeaderFilter(\"PrevWeek\");\r\n }}\r\n name={\"ArrowDoubleLeft\"}\r\n />\r\n {\r\n if (!isChangedRangeDate.current) {\r\n isChangedRangeDate.current = true;\r\n }\r\n handleHeaderFilter(\"RangeDateHeader\", e);\r\n }}\r\n returnFormat={\"YYYY-MM-DD\"}\r\n />\r\n = dataDateByTrans.current.MaxDate}\r\n onClick={() => {\r\n if (!isChangedRangeDate.current) {\r\n isChangedRangeDate.current = true;\r\n }\r\n handleHeaderFilter(\"NextWeek\");\r\n }}\r\n name={\"ArrowDoubleRight\"}\r\n />\r\n
\r\n handleHeaderFilter(\"PeriodTimeHeader\", e)}\r\n />\r\n
\r\n
\r\n
{renderFilter()}
\r\n
\r\n \r\n {dataLeaveType.map((d, idx) => {\r\n return (\r\n \r\n \r\n {d?.LeaveName ?? \"\"}\r\n \r\n \r\n );\r\n })}\r\n \r\n
\r\n\r\n {gridEmployee}\r\n \r\n );\r\n};\r\n\r\nexport default W29F2120;\r\n","/**\r\n * @copyright 2020 @ DigiNet\r\n * @author CanhToan\r\n * @create 06/30/2020\r\n * @update 06/30/2020\r\n * @Example\r\n */\r\n\r\nimport React from \"react\";\r\nimport { bindActionCreators, compose } from \"redux\";\r\nimport { withStyles, TextField } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport * as generalActions from \"../../../../redux/general/general_actions\";\r\nimport ActionToolbar from \"../../../common/toolbar/action-toolbar\";\r\nimport Config from \"../../../../config\";\r\nimport ButtonGeneral from \"../../../common/button/button-general\";\r\nimport ButtonCustom from \"../../../common/button/button-custom\";\r\nimport GridContainer from \"../../../grid-container/grid-container\";\r\nimport { Column } from \"devextreme-react/data-grid\";\r\nimport { Image, FormGroup, Row, Col } from \"react-bootstrap\";\r\nimport Status from \"../../../common/status/status\";\r\nimport Filter from \"../../../filter/filter\";\r\nimport { Combo } from \"../../../common/form-material\";\r\nimport DateBoxPicker from \"../../../common/form-material/date-box\";\r\nimport moment from \"moment\";\r\nimport { browserHistory } from \"react-router\";\r\nimport UserImage from \"../../../common/user/user-image\";\r\nimport NumberFormat from 'react-number-format';\r\n\r\nimport * as W38F2000Actions from \"../../../../redux/W3X/W38F2000/W38F2000_actions\";\r\nimport UserName from \"../../../common/user/user-name\";\r\nimport { ButtonIcon, Divider } from 'diginet-core-ui/components';\r\nimport W84F3005 from '../../../W8X/W84/W84F3005/W84F3005';\r\n\r\nconst styles = {\r\n btnFilter: {\r\n backgroundColor: \"#9999993d\",\r\n textTransform: \"uppercase\"\r\n },\r\n chip: {\r\n fontSize: \"1rem\",\r\n fontWeight: 400,\r\n border: \"none\",\r\n backgroundColor: \"#EBEBEB\"\r\n },\r\n dateInfo: {\r\n display: \"flex\",\r\n alignItems: \"center\"\r\n },\r\n divText: {\r\n // fontSize: \"14px\",\r\n fontWeight: 500,\r\n // color: \"#575757\"\r\n },\r\n divDateText: {\r\n fontSize: \"14px\",\r\n fontWeight: 400,\r\n color: \"#000000\"\r\n }\r\n};\r\n\r\nclass W38F2000 extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n iPermission: 0,\r\n FromDate: null,\r\n ToDate: null,\r\n gridLoading: false,\r\n employeeLoading: false,\r\n disabledFilter: false,\r\n error: {\r\n ToProNumber: '',\r\n ToProCost: ''\r\n },\r\n dataCboEmployees: {\r\n rows: [],\r\n total: 0\r\n },\r\n showW84F3005: false,\r\n w84F3005PopupData: {\r\n TransID: null\r\n },\r\n };\r\n this.filter = {\r\n AppStatusID: \"\",\r\n EmployeeID: \"\",\r\n TrainingCourseID: \"\",\r\n FromProNumber: \"\",\r\n ToProNumber: \"\",\r\n FromProCost: \"\",\r\n ToProCost: \"\",\r\n skip: 0,\r\n limit: 10,\r\n };\r\n this.filterCboEmployees = {\r\n timer: null,\r\n strSearch: \"\",\r\n skip: 0,\r\n limit: 20\r\n };\r\n this.filterCboTraining = {\r\n timer: null,\r\n strSearch: \"\",\r\n skip: 0,\r\n limit: 20\r\n };\r\n }\r\n\r\n loadPermission = async () => {\r\n await this.props.generalActions.getPermission(\"W38F2000\", (isPer) => {\r\n this.setState({iPermission: isPer});\r\n });\r\n };\r\n\r\n onSearch = () => {\r\n this.loadDataGrid();\r\n };\r\n\r\n onChangePageProfile = data => {\r\n browserHistory.push({\r\n pathname: Config.getRootPath() + \"W09F2000\",\r\n state: { EmployeeID: data.EmployeeID }\r\n });\r\n };\r\n\r\n renderEmpProfile = e => {\r\n const { classes } = this.props;\r\n const { data } = e.row;\r\n\r\n return (\r\n
\r\n this.onChangePageProfile(data)}/>\r\n
\r\n
\r\n
{data.DepartmentName || \"\"}
\r\n
\r\n \r\n
\r\n {data.VoucherDate && Config.convertDate(data.VoucherDate, \"\", \"DD/MM/YYYY, HH:mm:ss\", true)}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n renderInfo = e => {\r\n const { data } = e.row;\r\n const { classes } = this.props;\r\n return (\r\n
\r\n {data.TrainingCourseName && (\r\n
\r\n {Config.lang(\"Khoa_dao_tao\")}: {data.TrainingCourseName}\r\n
\r\n )}\r\n {data.DepartmentName && (\r\n
\r\n {Config.lang(\"Phong_ban\")}: {data.DepartmentName}\r\n
\r\n )}\r\n {data.ProjectName && (\r\n
\r\n {Config.lang(\"Du_an\")}: {data.ProjectName}\r\n
\r\n )}\r\n {!isNaN(data.ProNumber) && +data.ProNumber >= 0 && (\r\n
\r\n {Config.lang(\"So_luong_de_xuat\")}: {data.ProNumber}\r\n
\r\n )}\r\n {data.FromDate && data.ToDate && (\r\n
\r\n {Config.lang(\"Thoi_gian_dao_tao\")}: {moment(data.FromDate).format('DD/MM/YYYY') + ' - ' + moment(data.ToDate).format('DD/MM/YYYY')}\r\n
\r\n )}\r\n {!isNaN(data.ProCost) && +data.ProCost >= 0 && (\r\n
\r\n {Config.lang(\"Tong_chi_phi\")}: {new Intl.NumberFormat().format(data.ProCost)} {data.ProCurrencyName}\r\n
\r\n )}\r\n {data.ApproverName && (\r\n
\r\n {Config.lang(\"Nguoi_duyet\")}: {data.ApproverName} {data.DepartmentIDApp ? ' - ' + data.DepartmentIDApp : ''} {data.ApprovedDate ? ' - ' + data.ApprovedDate : ''}\r\n
\r\n )}\r\n {data.AppNote && (\r\n
\r\n {Config.lang(\"Ghi_chu_duyet\")}: {data.AppNote}\r\n
\r\n )}\r\n
\r\n );\r\n };\r\n\r\n renderStatus = e => {\r\n const { data } = e.row;\r\n return (\r\n \r\n );\r\n };\r\n\r\n onAdd = () => {\r\n browserHistory.push({\r\n pathname: Config.getRootPath() + \"W38F2001\",\r\n state: { mode: 'add' }\r\n });\r\n };\r\n\r\n onView = e => {\r\n const { data } = e.row;\r\n browserHistory.push({\r\n pathname: Config.getRootPath() + \"W38F2001\",\r\n state: { mode: +data.AppStatusID ? 'view' : 'edit', ProposalID: data.ProposalID, ProBatchID: data.ProBatchID }\r\n });\r\n };\r\n\r\n onDelete = data => {\r\n const { ProBatchID, ProposalID } = data;\r\n\r\n const param = {\r\n ProBatchID,\r\n ProposalID,\r\n Mode: 0\r\n };\r\n\r\n Config.popup.show(\"YES_NO\", Config.lang(\"Ban_co_chac_muon_xoa?\"), () => {\r\n this.props.W38F2000Actions.deleteGrid(param, error => {\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n } else {\r\n Config.notify.show(\r\n \"success\",\r\n Config.lang(\"Xoa_thanh_cong\"),\r\n 3000\r\n );\r\n this.loadDataGrid();\r\n }\r\n });\r\n });\r\n };\r\n\r\n onViewHistory = (e,data = {}) => {\r\n this.setState({ w84F3005PopupData: { TransID: data?.ProposalID }, showW84F3005: true })\r\n }\r\n\r\n renderAction = e => {\r\n const { data } = e.row;\r\n return (\r\n
\r\n this.onViewHistory(e, data)}\r\n />\r\n \r\n this.onView(e)}\r\n />\r\n \r\n this.onDelete(data)}\r\n />\r\n
\r\n );\r\n };\r\n\r\n filterChange = (key, data) => {\r\n if (!key) return false;\r\n const { value, target } = data;\r\n const { error } = this.state;\r\n switch (key) {\r\n case \"FromDate\":\r\n this.setState({ FromDate: value });\r\n break;\r\n case \"ToDate\":\r\n this.setState({ ToDate: value });\r\n break;\r\n case \"AppStatusID\":\r\n case \"EmployeeID\":\r\n case \"TrainingCourseID\":\r\n this.filter[key] = !Config.isEmpty(value, true) ? value : \"\";\r\n break;\r\n case \"FromProNumber\": case \"ToProNumber\": {\r\n this.filter[key] = !Config.isEmpty(target.value, true) ? +target.value : \"\";\r\n if (this.filter.FromProNumber && this.filter.ToProNumber && this.filter.FromProNumber > this.filter.ToProNumber) {\r\n this.setState({error: {...error, ToProNumber: Config.lang('Phai_lon_hon_gia_tri_tu')}, disabledFilter: true});\r\n } else if (this.state.error.ToProNumber) {\r\n this.setState({error: {...error, ToProNumber: ''}, disabledFilter: this.state.error.ToProCost ? true : false})\r\n }\r\n break;\r\n }\r\n case \"FromProCost\": case \"ToProCost\": {\r\n this.filter[key] = !Config.isEmpty(target.value, true) ? +target.value : \"\";\r\n if (this.filter.FromProCost && this.filter.ToProCost && this.filter.FromProCost > this.filter.ToProCost) {\r\n this.setState({error: {...error, ToProCost: Config.lang('Phai_lon_hon_gia_tri_tu')}, disabledFilter: true});\r\n } else if (this.state.error.ToProCost) {\r\n this.setState({error: {...error, ToProCost: ''}, disabledFilter: this.state.error.ToProNumber ? true : false})\r\n }\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n renderFilter = () => {\r\n const { getCboAppStatus, getCboTraining, classes } = this.props;\r\n const { FromDate, ToDate, employeeLoading, disabledFilter, error, dataCboEmployees } = this.state;\r\n\r\n return (\r\n {\r\n return (\r\n <>\r\n \r\n \r\n \r\n
\r\n
\r\n {Config.lang(\"Tu\")}\r\n
\r\n this.filterChange(\"FromDate\", e)}\r\n useMaskBehavior={true}\r\n showClearButton={true}\r\n placeholder={\"DD/MM/YYYY\"}\r\n value={FromDate && FromDate}\r\n />\r\n
\r\n \r\n \r\n
\r\n
\r\n {Config.lang(\"Den\").toLowerCase()}\r\n
\r\n this.filterChange(\"ToDate\", e)}\r\n useMaskBehavior={true}\r\n showClearButton={true}\r\n placeholder={\"DD/MM/YYYY\"}\r\n value={ToDate && ToDate}\r\n />\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n this.filterChange(\"AppStatusID\", e)}\r\n showClearButton={true}\r\n value={this.filter.AppStatusID || ''}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n const { data } = e;\r\n if (!data) return null;\r\n return data.EmployeeID + ' - ' + data.EmployeeName;\r\n }}\r\n showClearButton={true}\r\n onValueChanged={e => this.filterChange(\"EmployeeID\", e)}\r\n onInputChanged={(e) => {\r\n if (this.filterCboEmployees.timer) clearTimeout(this.filterCboEmployees.timer);\r\n this.filterCboEmployees.strSearch = e.target.value;\r\n this.filterCboEmployees.timer = setTimeout(() => {\r\n this.filterCboEmployees.skip = 0;\r\n this.filterCboEmployees.limit = 20;\r\n this.loadCboEmployees(true);\r\n }, 700);\r\n }}\r\n onLoadMore={(e) => {\r\n this.filterCboEmployees.skip = e.skip;\r\n this.filterCboEmployees.limit = e.limit;\r\n this.loadCboEmployees();\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n this.filterChange(\"TrainingCourseID\", e)}\r\n showClearButton={true}\r\n value={this.filter.TrainingCourseID || ''}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {Config.lang(\"Tu\")}\r\n
\r\n this.filterChange(\"FromProNumber\", e)}\r\n fullWidth\r\n />\r\n
\r\n \r\n \r\n
\r\n
\r\n {Config.lang(\"Den\").toLowerCase()}\r\n
\r\n this.filterChange(\"ToProNumber\", e)}\r\n fullWidth\r\n />\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {Config.lang(\"Tu\")}\r\n
\r\n this.filterChange(\"FromProCost\", e)}\r\n fullWidth\r\n />\r\n
\r\n \r\n \r\n
\r\n
\r\n {Config.lang(\"Den\").toLowerCase()}\r\n
\r\n this.filterChange(\"ToProCost\", e)}\r\n fullWidth\r\n />\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n );\r\n }}\r\n />\r\n );\r\n };\r\n\r\n componentDidMount = async() => {\r\n await this.loadPermission();\r\n if (this.state.iPermission <= 0) return;\r\n this.loadDataGrid();\r\n this.loadCboAppStatus();\r\n this.loadCboEmployees();\r\n this.getCboTraining();\r\n };\r\n\r\n componentDidUpdate (prevProps, prevState, snapshot) {\r\n const {dataGrid} = this.props;\r\n Config.callChildForm({\r\n FormID: \"W38F2000\",\r\n // ID: voucher_id,\r\n keyExpr: \"ProposalID\",\r\n data: dataGrid && dataGrid.rows ? dataGrid.rows : [],\r\n onLoad: (params) => this.loadDataGrid(params && params.ID),\r\n onAction: (e, data) => this.onView({ row: { data: data } })\r\n }, this.props);\r\n }\r\n\r\n getCboTraining = () => {\r\n const param = {\r\n DivisionID: Config.getDivisionID(),\r\n TrainingFieldID: '',\r\n TrainingCourseID: '',\r\n Language: Config.language || \"84\",\r\n };\r\n\r\n this.props.W38F2000Actions.getCboTraining(param, error => {\r\n if (error) {\r\n let message = error.message || Config.lang(\"Loi_chua_xac_dinh\");\r\n Config.popup.show(\"INFO\", '[GET_COMBO_TRANINING] ' + message);\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n loadDataGrid = (VoucherID) => {\r\n const {voucher_id} = Config.getUrlParams(this.props);\r\n VoucherID = VoucherID ? VoucherID : voucher_id;\r\n const { FromDate, ToDate } = this.state;\r\n const { AppStatusID, EmployeeID, TrainingCourseID, FromProNumber, ToProNumber, ToProCost, FromProCost, limit, skip} = this.filter;\r\n const param = {\r\n TransID: VoucherID || \"\",\r\n DivisionID: Config.getDivisionID(),\r\n FormID: \"W38F2000\",\r\n FromDate: FromDate || null,\r\n ToDate: ToDate || null,\r\n AppStatusID: AppStatusID,\r\n EmployeeID: EmployeeID ? EmployeeID.EmployeeID : '',\r\n TrainingCourseID: TrainingCourseID,\r\n FromProNumber: FromProNumber,\r\n ToProNumber: ToProNumber,\r\n FromProCost: FromProCost,\r\n ToProCost: ToProCost,\r\n Language: Config.language || \"84\",\r\n skip: skip,\r\n limit: limit\r\n };\r\n this.setState({ gridLoading: true });\r\n this.props.W38F2000Actions.loadDataGrid(param, error => {\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n this.setState({ gridLoading: false });\r\n });\r\n };\r\n\r\n loadCboAppStatus = () => {\r\n const param = {\r\n FormID: \"STANDARD\",\r\n Language: Config.language || 84\r\n };\r\n\r\n this.props.generalActions.getCboAppStatus(param, error => {\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n });\r\n };\r\n\r\n loadCboEmployees = (isReset) => {\r\n const params = {\r\n HostID: \"\",\r\n Type: \"EmployeeID\",\r\n FormID: \"W38F2000\",\r\n Language: Config.language || '84',\r\n skip: this.filterCboEmployees.skip,\r\n limit: this.filterCboEmployees.limit,\r\n search: this.filterCboEmployees.strSearch\r\n };\r\n this.setState({ employeeLoading: true });\r\n this.props.generalActions.getCboEmployees(params, (error, data) => {\r\n this.setState({ employeeLoading: false });\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n if (data) {\r\n const {dataCboEmployees} = this.state;\r\n const rows = data && data.rows ? data.rows : data;\r\n const total = data && data.total ? data.total : data.length;\r\n this.setState({\r\n dataCboEmployees: {\r\n rows: isReset ? rows : dataCboEmployees.rows.concat(rows),\r\n total: total\r\n }\r\n })\r\n }\r\n });\r\n };\r\n\r\n onChangePage = page => {\r\n this.filter.skip = page * this.filter.limit;\r\n this.loadDataGrid();\r\n };\r\n\r\n onChangePerPage = perPage => {\r\n this.filter.skip = 0;\r\n this.filter.limit = perPage;\r\n this.loadDataGrid();\r\n };\r\n\r\n render() {\r\n const { dataGrid } = this.props;\r\n const { iPermission, gridLoading, showW84F3005, w84F3005PopupData = {} } = this.state;\r\n if (iPermission <= 0) return null;\r\n const { skip, limit } = this.filter;\r\n return (\r\n
\r\n {showW84F3005 && this.setState({ showW84F3005: false })}\r\n FormID=\"W38F2000\"\r\n TransID={w84F3005PopupData.TransID}\r\n />}\r\n
{this.renderFilter()}
\r\n \r\n \r\n \r\n this.onView(e)}\r\n loading={gridLoading}\r\n hoverStateEnabled={true}\r\n totalItems={dataGrid && Number(dataGrid.total)}\r\n itemPerPage={limit}\r\n skipPerPage={skip}\r\n typePaging={\"remote\"}\r\n height={Config.getHeightGrid()}\r\n onChangePage={this.onChangePage}\r\n onChangePerPage={this.onChangePerPage}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nclass NumberFormatCustom extends React.Component {\r\n render() {\r\n const {name, inputRef, onChange, ...props} = this.props;\r\n return (\r\n {\r\n if (onChange) {\r\n onChange({\r\n target: {\r\n name: name,\r\n value: e.value\r\n }\r\n })\r\n }\r\n }}\r\n />\r\n );\r\n }\r\n}\r\n\r\nexport default compose(\r\n connect(\r\n state => ({\r\n getCboAppStatus: state.general.getCboAppStatus,\r\n getCboTraining: state.W38F2000.getCboTraining,\r\n dataGrid: state.W38F2000.dataGrid\r\n }),\r\n dispatch => ({\r\n generalActions: bindActionCreators(generalActions, dispatch),\r\n W38F2000Actions: bindActionCreators(W38F2000Actions, dispatch)\r\n })\r\n ),\r\n withStyles(styles)\r\n)(W38F2000);\r\n","/**\r\n * @copyright 2019 @ DigiNet\r\n * @author CANHTOAN\r\n * @create 07/20/2020\r\n * @Example\r\n */\r\n\r\nimport React, {Component} from \"react\";\r\n\r\nimport {connect} from \"react-redux\";\r\nimport {bindActionCreators, compose} from \"redux\";\r\nimport DateRangeBox from '../../../common/date/date-range';\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport * as W38F2001Actions from \"../../../../redux/W3X/W38F2001/W38F2001_actions\";\r\nimport * as generalActions from \"../../../../redux/general/general_actions\";\r\nimport Config from \"../../../../config\";\r\nimport ActionToolbar from \"../../../common/toolbar/action-toolbar\";\r\nimport {Col, Row, FormGroup} from \"react-bootstrap\";\r\nimport {Combo, TextField, Checkbox} from \"../../../common/form-material\";\r\n// import DateBoxPicker from \"../../../common/form-material/date-box\";\r\nimport ButtonGeneral from \"../../../common/button/button-general\";\r\nimport ButtonCustom from \"../../../common/button/button-custom\";\r\nimport InlineSVG from \"react-inlinesvg\";\r\nimport { ChevronLeft as ChevronLeftIcon, ChevronRight as ChevronRightIcon } from '@material-ui/icons';\r\nimport moment from 'moment';\r\nimport W09F6000 from \"../../../W0X/W09/W09F6000/W09F6000\";\r\nimport GridContainer from \"../../../grid-container/grid-container\";\r\nimport { Column } from \"devextreme-react/data-grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport UserImage from \"../../../common/user/user-image\";\r\nimport {\r\n ExpansionPanel,\r\n ExpansionPanelDetails,\r\n ExpansionPanelSummary,\r\n FormControl,\r\n InputLabel,\r\n Typography\r\n} from \"@material-ui/core\";\r\n// import W38F2001EmployeeList from \"../../../W2X/W25/W38F2001/W38F2001EmployeeList\";\r\nimport Attachments from \"../../../common/attachments/attachments\";\r\nimport MForm from \"../../../common/form-material/form\";\r\nimport _ from \"lodash\";\r\nimport NumberFormat from 'react-number-format';\r\nimport {browserHistory} from \"react-router\";\r\nimport 'react-date-range/dist/styles.css';\r\nimport 'react-date-range/dist/theme/default.css';\r\nimport Icons from \"../../../common/icons/\";\r\nimport GridActionBar from \"../../../grid-container/grid-actionbar\";\r\nconst styles = theme => ({\r\n ExpansionPanelDetails: {\r\n padding: 0\r\n },\r\n divText: {\r\n // fontSize: \"14px\",\r\n fontWeight: 500,\r\n // color: \"#575757\"\r\n },\r\n textField: {\r\n '& .MuiFormHelperText-root': {\r\n marginTop: 0,\r\n position: \"relative\",\r\n top: 0\r\n }\r\n },\r\n panel: {\r\n transition: 'all .4s'\r\n },\r\n panelForm: {\r\n transition: 'all .5s',\r\n opacity: 1\r\n },\r\n hiddenOpacity: {\r\n opacity: 0\r\n },\r\n close: {\r\n width: 0,\r\n height: 0,\r\n },\r\n open: {\r\n height: '100%',\r\n overflowY: 'auto',\r\n },\r\n dateRanger: {\r\n backgroundColor: '#ebebeb'\r\n }\r\n});\r\n\r\nclass W38F2001 extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n dataCboProjects: {\r\n rows: [],\r\n total: 0\r\n },\r\n dataCboTrainingField: {\r\n rows: [],\r\n total: 0\r\n },\r\n dataTrainingCourse: {\r\n rows: [],\r\n total: 0\r\n },\r\n error : {},\r\n loadingProjects : false,\r\n loadingTrainingField : false,\r\n loadingTrainingCourse: false,\r\n gridLoading : false,\r\n expandedFirst : false,\r\n disabled : false,\r\n showEmployeeSelect : false,\r\n NotJoinTrain : false,\r\n formData: {\r\n TrainingFieldID : \"\",\r\n TrainingCourseID : \"\",\r\n IsInternal : 0,\r\n ProNumber : 0,\r\n ProjectID : \"\",\r\n DepartmentID : \"\",\r\n TeamID : \"\",\r\n TrainingPurpose : \"\",\r\n Content : \"\",\r\n TrainingPeriod : \"\",\r\n TrainingMonthNum : \"\",\r\n ProAverageCosts : \"\",\r\n CurrencyID : \"\",\r\n ProCost : 0,\r\n ProExchangeRate : 0,\r\n ProNote : \"\",\r\n ProCCost : 0,\r\n },\r\n HREmployeeID : \"\",\r\n TrainningEmpName : \"\",\r\n DateRangeForm: [{\r\n startDate: null,\r\n endDate : null,\r\n key : 'selection'\r\n }],\r\n dateFromTo: '',\r\n dataOldAttachments: [],\r\n selectedEmployeeID: [],\r\n uploading : false,\r\n formLoading : false,\r\n dataDefaults : null,\r\n };\r\n\r\n this.attachments = [];\r\n this.deletedFile = [];\r\n this.upload = null;\r\n this.TrainingCourse = null;\r\n this.fieldJustChanged = [];\r\n this.filterCboProjects = {\r\n timer: null,\r\n skip: 0,\r\n limit: 50,\r\n strSearch: \"\"\r\n }\r\n this.filterCboTrainingField = {\r\n timer: null,\r\n skip: 0,\r\n limit: 50,\r\n strSearch: \"\"\r\n }\r\n this.filterTrainingCourse = {\r\n timer: null,\r\n skip: 0,\r\n limit: 50,\r\n strSearch: \"\"\r\n }\r\n this.TrainingPurposeRef = React.createRef();\r\n this.ContentRef = React.createRef();\r\n }\r\n\r\n loadCboDepartments = () => {\r\n const param = {\r\n DivisionID: Config.getDivisionID(),\r\n CompanyID: \"\",\r\n HostID: \"\",\r\n FormID: \"W38F2000\",\r\n Language: Config.language || '84'\r\n };\r\n this.props.generalActions.getCboDepartments(param, (error) => {\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n });\r\n };\r\n\r\n loadCboTeams = () => {\r\n const param = {\r\n DivisionID: Config.getDivisionID(),\r\n CompanyID: \"\",\r\n HostID: \"\",\r\n FormID: \"W38F2000\",\r\n Language: Config.language || '84'\r\n };\r\n this.props.generalActions.getCboTeam(param, (error) => {\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n });\r\n };\r\n\r\n loadCboProjects = (isReset) => {\r\n const param = {\r\n HostID: \"\",\r\n FormID: \"W38F2000\",\r\n Language: Config.language || '84',\r\n Mode: 0,\r\n skip: this.filterCboProjects.skip,\r\n limit: this.filterCboProjects.limit,\r\n search: this.filterCboProjects.strSearch\r\n };\r\n this.setLoading('Projects', true);\r\n this.props.generalActions.getCboProjects(param, (error, data) => {\r\n this.setLoading('Projects', false);\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n if (data) {\r\n const {dataCboProjects} = this.state;\r\n const rows = data && data.rows ? data.rows : data;\r\n const total = data && data.total ? data.total : data.length;\r\n this.setState({\r\n dataCboProjects: {\r\n rows: isReset ? rows : dataCboProjects.rows.concat(rows),\r\n total: total\r\n }\r\n })\r\n }\r\n });\r\n };\r\n\r\n loadCurrency = () => {\r\n this.props.generalActions.getLoadCurrency({}, (error) => {\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n });\r\n };\r\n\r\n loadCboTrainingField = (isReset) => {\r\n const { skip, limit, strSearch } = this.filterCboTrainingField;\r\n const param = {\r\n DivisionID: Config.getDivisionID(),\r\n TrainingFieldID: '',\r\n TrainingCourseID: '',\r\n Language: Config.language || '84',\r\n search: strSearch,\r\n skip: skip,\r\n limit: limit,\r\n };\r\n this.setLoading('TrainingField', true);\r\n this.props.W38F2001Actions.loadCboTrainingField(param, (error, data) => {\r\n this.setLoading('TrainingField', false);\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n if (data) {\r\n const {dataCboTrainingField} = this.state;\r\n const rows = data && data.rows ? data.rows : data;\r\n const total = data && data.total ? data.total : data.length;\r\n this.setState({\r\n dataCboTrainingField: {\r\n rows: isReset ? rows : dataCboTrainingField.rows.concat(rows),\r\n total: total\r\n }\r\n })\r\n }\r\n });\r\n };\r\n\r\n loadTrainingCourse = (isReset, ID = '', isFirst) => {\r\n const { skip, limit, strSearch } = this.filterTrainingCourse;\r\n const { TrainingFieldID } = this.state.formData;\r\n const param = {\r\n DivisionID: Config.getDivisionID(),\r\n TrainingFieldID: ID || TrainingFieldID?.TrainingFieldID,\r\n TrainingCourseID: '',\r\n Language: Config.language || '84',\r\n search: strSearch,\r\n skip: skip,\r\n limit: limit,\r\n };\r\n\r\n this.setLoading('TrainingCourse', true);\r\n this.props.W38F2001Actions.loadTrainingCourse(param, (error, data) => {\r\n this.setLoading('TrainingCourse', false);\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n if (data) {\r\n const { formData, dataTrainingCourse } = this.state;\r\n const rows = data && data.rows ? data.rows : data;\r\n const total = data && data.total ? data.total : data.length;\r\n if (!isFirst) {\r\n formData.TrainingCourseID = {};\r\n }\r\n this.setState({\r\n dataTrainingCourse: {\r\n rows: isReset ? rows : dataTrainingCourse.rows.concat(rows),\r\n total: total\r\n },\r\n formData\r\n })\r\n }\r\n });\r\n };\r\n\r\n loadTrainingCourseDetail = (TrainingCourseID) => {\r\n const { TrainingFieldID } = this.state.formData;\r\n const param = {\r\n DivisionID: Config.getDivisionID(),\r\n TrainingFieldID: TrainingFieldID?.TrainingFieldID,\r\n TrainingCourseID: TrainingCourseID,\r\n Language: Config.language || '84',\r\n };\r\n this.props.W38F2001Actions.loadTrainingCourseDetail(param, (error, data) => {\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n if (data) {\r\n let { formData, DateRangeForm, TrainningEmpName } = this.state;\r\n const FromDate = data.FromDate ? data.FromDate.split('/') : null;\r\n const ToDate = data.ToDate ? data.ToDate.split('/') : null;\r\n\r\n formData.ProAverageCosts = data.ProAverageCosts ? data.ProAverageCosts.toFixed(2) : formData.ProAverageCosts ;\r\n formData.ProCost = data.ProCost ? data.ProCost.toFixed(2) : formData.ProCost ;\r\n formData.CurrencyID = data.ProCurrencyID ? data.ProCurrencyID : formData.ProCurrencyID ;\r\n formData.Content = data.Content ? data.Content : formData.Content ;\r\n formData.TrainingMonthNum = data.TrainingMonthNum ? data.TrainingMonthNum : formData.TrainingMonthNum;\r\n formData.TrainingPeriod = data.TrainingPeriod ? data.TrainingPeriod : formData.TrainingPeriod ;\r\n formData.TrainingPurpose = data.TrainingPurpose ? data.TrainingPurpose : formData.TrainingPurpose ;\r\n\r\n TrainningEmpName = data.TrainningEmpName ? data.TrainningEmpName : TrainningEmpName;\r\n this.setState({\r\n formData,\r\n TrainningEmpName,\r\n DateRangeForm: [{\r\n startDate: FromDate ? new Date(FromDate[2], FromDate[1] - 1, FromDate[0]) : DateRangeForm.startDate,\r\n endDate: ToDate ? new Date(ToDate[2], ToDate[1] - 1, ToDate[0]) : DateRangeForm.endDate,\r\n key: 'selection'\r\n }]\r\n }, () => {\r\n if (data.ProCurrencyID) {\r\n this.onChange('CurrencyID', {value: data.ProCurrencyID})\r\n }\r\n if (data.TrainingPurpose) {\r\n this.TrainingPurposeRef.current.value = data.TrainingPurpose;\r\n }\r\n if (data.Content) {\r\n this.ContentRef.current.value = data.Content;\r\n }\r\n })\r\n }\r\n });\r\n }\r\n\r\n onChange = (nameField, e) => {\r\n if (!e || this.fieldJustChanged.includes(nameField)) {\r\n this.fieldJustChanged.splice(this.fieldJustChanged.indexOf(e => e === nameField));\r\n return false;\r\n }\r\n if (['ProAverageCosts', 'ProExchangeRate', 'ProCost', 'ProCCost'].includes(nameField)) {\r\n this.fieldJustChanged.push(nameField);\r\n }\r\n if (!this.state.isUpdated) {\r\n this.setState({isUpdated: true})\r\n }\r\n let value = e.target?.value || e.value;\r\n\r\n setTimeout(() => {\r\n const { formData } = this.state;\r\n switch (nameField) {\r\n case \"CurrencyID\": {\r\n const { getLoadCurrency } = this.props;\r\n formData.ProExchangeRate = getLoadCurrency.find(e => e.CurrencyID === value).ExchangeRate;\r\n this.fieldJustChanged.push('ProExchangeRate');\r\n if (formData.ProCost) {\r\n formData.ProCCost = formData.ProCost * formData.ProExchangeRate;\r\n }\r\n break;\r\n }\r\n case \"ProNumber\": {\r\n if (value < 0) {\r\n value = 0;\r\n }\r\n if (formData.ProAverageCosts !== undefined) {\r\n formData.ProCost = (value * formData.ProAverageCosts).toFixed(2);\r\n this.fieldJustChanged.push('ProCost');\r\n }\r\n if (formData.ProExchangeRate !== undefined && formData.ProCost !== undefined) {\r\n formData.ProCCost = formData.ProCost * formData.ProExchangeRate;\r\n }\r\n break;\r\n }\r\n case \"ProAverageCosts\": {\r\n this.fieldJustChanged.push('ProAverageCosts');\r\n if (value < 0) {\r\n value = 0;\r\n }\r\n value = (+value).toFixed(2);\r\n if (formData.ProNumber !== undefined) {\r\n formData.ProCost = (formData.ProNumber * value).toFixed(2);\r\n this.fieldJustChanged.push('ProCost');\r\n }\r\n if (formData.ProExchangeRate !== undefined && formData.ProCost !== undefined) {\r\n formData.ProCCost = formData.ProCost * formData.ProExchangeRate;\r\n this.fieldJustChanged.push('ProCCost');\r\n }\r\n break;\r\n } \r\n case \"ProExchangeRate\": {\r\n this.fieldJustChanged.push('ProExchangeRate');\r\n if (value < 0) {\r\n value = 0;\r\n }\r\n if (formData.ProCost !== undefined) {\r\n formData.ProCCost = formData.ProCost * value;\r\n }\r\n break;\r\n } \r\n case 'TrainingMonthNum': {\r\n if (value < 0) {\r\n value = 0;\r\n }\r\n break;\r\n }\r\n case 'TrainingPeriod': {\r\n if (value < 0) {\r\n value = 0;\r\n }\r\n break;\r\n }\r\n case 'ProCost': {\r\n this.fieldJustChanged.push('ProCost');\r\n if (value < 0) {\r\n value = 0;\r\n }\r\n value = (+value).toFixed(2);\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n\r\n formData[nameField] = value;\r\n this.setState({\r\n formData: formData\r\n }, () => {\r\n setTimeout(() => {\r\n this.fieldJustChanged = this.fieldJustChanged.filter(e => e !== nameField);\r\n }, 0)\r\n if (nameField === 'TrainingFieldID') {\r\n this.TrainingCourse.state.value = '';\r\n if (value) {\r\n return this.loadTrainingCourse(true);\r\n }\r\n this.setState({\r\n dataTrainingCourse: {\r\n rows: [],\r\n total: 0\r\n }\r\n });\r\n } else if (nameField === 'TrainingCourseID') {\r\n if (value) {\r\n return this.loadTrainingCourseDetail(value.TrainingCourseID);\r\n }\r\n }\r\n });\r\n }, 0);\r\n };\r\n\r\n onChangeDate =(ranges) => {\r\n if (ranges) {\r\n this.setState({ DateRangeForm: ranges})\r\n }\r\n }\r\n\r\n setLoading = (key, status = false) => {\r\n if (!key) return;\r\n this.setState({['loading' + key]: status});\r\n\r\n };\r\n\r\n _getAttachments = () => {\r\n const listAttachments = Config.helpers.getFileInfomations(this.attachments);\r\n const { dataOldAttachments } = this.state;\r\n let arrAttachment = [];\r\n listAttachments.forEach(att => {\r\n arrAttachment.push({\r\n URL: att.url ? att.url : \"\",\r\n FileName: att.fileName ? att.fileName : \"\",\r\n FileSize: att.fileSize ? att.fileSize : \"\",\r\n FileExt: att.fileExt ? att.fileExt : \"\"\r\n });\r\n });\r\n if (!_.isEmpty(dataOldAttachments)) {\r\n arrAttachment = dataOldAttachments.concat(arrAttachment);\r\n }\r\n\r\n return arrAttachment;\r\n };\r\n\r\n onAttachment = () => {\r\n if (this.attRef) {\r\n this.attRef.onAttachment();\r\n }\r\n };\r\n\r\n onUploading = value => {\r\n this.setState({ uploading: value });\r\n };\r\n\r\n onChangeAttachments = e => {\r\n this.attachments = e.uploadedFiles ? e.uploadedFiles : [];\r\n if (e.deletedFiles && e.deletedFiles.length > 0) {\r\n this.deletedFile = [...e.deletedFiles];\r\n const _arrRemove = this.deletedFile.map(d => d.AttachmentID);\r\n this.setState(prevState => ({\r\n dataOldAttachments: prevState.dataOldAttachments.filter(att => {\r\n return _arrRemove.indexOf(att.AttachmentID) < 0;\r\n })\r\n }));\r\n }\r\n if (!this.state.isUpdated) {\r\n this.setState({ isUpdated: true });\r\n }\r\n };\r\n\r\n loadAttachments = () => {\r\n const { ProposalID } = this.getInfo();\r\n const param = {\r\n KeyID: ProposalID ? ProposalID : '',\r\n TableName: 'D38T2000'\r\n };\r\n if (_.isEmpty(param.KeyID)) {\r\n Config.popup.show(\"INFO\", Config.lang(\"KeyID_dang_rong_hoac_thieu_khong_the_tai_danh_sach_dinh_kem\"));\r\n return false;\r\n }\r\n this.props.generalActions.getAttachmentsByTransID(param, (error, data) => {\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n if (data) {\r\n this.setState({\r\n dataOldAttachments: data,\r\n });\r\n }\r\n });\r\n };\r\n\r\n loadForm = () => {\r\n const { ProBatchID, ProposalID } = this.getInfo();\r\n const params = {\r\n DivisionID: Config.getDivisionID(),\r\n ProBatchID: ProBatchID,\r\n ProposalID: ProposalID,\r\n Language: Config.language || \"84\"\r\n };\r\n\r\n return new Promise((response, reject) => {\r\n this.props.W38F2001Actions.loadForm(params, (errors, data) => {\r\n if (errors) {\r\n let message = errors.message || Config.lang(\"Loi_chua_xac_dinh\");\r\n Config.popup.show('INFO', message);\r\n reject(false);\r\n }\r\n if(data) {\r\n const FromDate = data.FromDate ? data.FromDate.split('/') : null;\r\n const ToDate = data.ToDate ? data.ToDate.split('/') : null;\r\n this.setState({\r\n formData: {\r\n //...this.state.formData,\r\n TrainingFieldID: { TrainingFieldID: data.TrainingFieldID ? data.TrainingFieldID : \"\", TrainingFieldName: data.TrainingFieldName ? data.TrainingFieldName : \"\" },\r\n TrainingCourseID: { TrainingCourseID: data.TrainingCourseID ? data.TrainingCourseID : \"\", TrainingCourseName: data.TrainingCourseName ? data.TrainingCourseName : \"\" },\r\n IsInternal: data.IsInternal ? data.IsInternal : 0,\r\n ProNumber: data.ProNumber ? data.ProNumber : 0,\r\n ProjectID: { ProjectID: data.ProjectID ? data.ProjectID : \"\", ProjectName: data.ProjectName ? data.ProjectName : ''},\r\n DepartmentID: data.DepartmentID ? data.DepartmentID : \"\",\r\n TeamID: data.TeamID ? data.TeamID : \"\",\r\n TrainingPurpose: data.TrainingPurpose ? data.TrainingPurpose : \"\",\r\n Content: data.Content ? data.Content : \"\",\r\n TrainingPeriod: data.TrainingPeriod ? data.TrainingPeriod : 0,\r\n TrainingMonthNum: data.TrainingMonthNum ? data.TrainingMonthNum : 0,\r\n ProAverageCosts: data.ProAverageCosts ? data.ProAverageCosts : 0,\r\n CurrencyID: data.ProCurrencyID ? data.ProCurrencyID : \"\",\r\n ProCost: data.ProCost ? data.ProCost : 0,\r\n ProExchangeRate: data.ProExchangeRate ? data.ProExchangeRate : 0,\r\n ProNote: data.ProNote ? data.ProNote : \"\",\r\n ProCCost: data.ProCCost ? data.ProCCost : 0\r\n },\r\n TrainningEmpName: data.TrainningEmpName ? data.TrainningEmpName : \"\",\r\n DateRangeForm: [{\r\n startDate: FromDate ? new Date(FromDate[2], FromDate[1] - 1, FromDate[0]) : null,\r\n endDate: ToDate ? new Date(ToDate[2], ToDate[1] - 1, ToDate[0]) : null,\r\n key: 'selection'\r\n }]\r\n }, () => {\r\n const { TrainingFieldID } = data;\r\n if (TrainingFieldID) {\r\n this.loadTrainingCourse(true, TrainingFieldID, true);\r\n }\r\n response(true);\r\n });\r\n }\r\n });\r\n });\r\n };\r\n\r\n loadGrid = (Mode = 0) => {\r\n const { ProBatchID, ProposalID } = this.getInfo();\r\n const { formData } = this.state;\r\n const { TrainingCourseID } = formData;\r\n const params = {\r\n DivisionID: Config.getDivisionID(),\r\n Mode: Mode,\r\n ProBatchID: ProBatchID,\r\n ProposalID: ProposalID,\r\n TrainingCourseID: TrainingCourseID?.TrainingCourseID\r\n };\r\n\r\n this.setState({ gridLoading: true });\r\n this.props.W38F2001Actions.loadGrid(params, (errors, data) => {\r\n this.setState({ gridLoading: false });\r\n if (errors) {\r\n let message = errors.message || Config.lang(\"Loi_chua_xac_dinh\");\r\n Config.popup.show('INFO', message);\r\n return false;\r\n }\r\n if(data) {\r\n this.setState({\r\n selectedEmployeeID: data.map(e => e.EmployeeID)\r\n });\r\n }\r\n })\r\n };\r\n\r\n setStateErrorText = (value) => {\r\n const { error } = this.state;\r\n this.setState({\r\n error: {\r\n ...error,\r\n ...value\r\n }\r\n });\r\n return Object.keys(value).length !== 0;\r\n };\r\n\r\n onSave = () => {\r\n const { ProBatchID, ProposalID, mode } = this.getInfo();\r\n const { formData, HREmployeeID, TrainningEmpName, DateRangeForm, selectedEmployeeID } = this.state;\r\n const {\r\n TrainingFieldID,\r\n TrainingCourseID,\r\n IsInternal,\r\n ProNumber,\r\n ProjectID,\r\n DepartmentID,\r\n TeamID,\r\n TrainingPurpose,\r\n Content,\r\n TrainingPeriod,\r\n TrainingMonthNum,\r\n ProAverageCosts,\r\n CurrencyID,\r\n ProCost,\r\n ProExchangeRate,\r\n ProNote,\r\n ProCCost,\r\n } = formData;\r\n\r\n const { startDate, endDate } = DateRangeForm[0];\r\n\r\n const validateRules = [\r\n {\r\n name: \"DepartmentID\",\r\n rules: \"isRequired\",\r\n value: DepartmentID\r\n },\r\n {\r\n name: \"TrainingFieldID\",\r\n rules: \"isRequired\",\r\n value: TrainingFieldID\r\n },\r\n {\r\n name: \"TrainingCourseID\",\r\n rules: \"isRequired\",\r\n value: TrainingCourseID\r\n }\r\n ];\r\n const validateFrom = MForm.formValidation(validateRules);\r\n if (Object.keys(validateFrom).length > 0) {\r\n this.setStateErrorText(validateFrom);\r\n return false;\r\n }\r\n const arrAttachments = this._getAttachments();\r\n let params = {\r\n DivisionID : Config.getDivisionID(),\r\n TranMonth : Config.getHRTransMonth() || '',\r\n TranYear : Config.getHRTransYear() || '',\r\n TrainingFieldID : TrainingFieldID ? TrainingFieldID.TrainingFieldID : \"\",\r\n TrainingCourseID : TrainingCourseID ? TrainingCourseID.TrainingCourseID : \"\",\r\n TrainningEmpName : TrainningEmpName ? TrainningEmpName : \"\",\r\n FromDate : startDate ? moment(startDate).format('YYYY-MM-DD') : '',\r\n ToDate : endDate ? moment(endDate).format('YYYY-MM-DD') : '',\r\n IsInternal : IsInternal ? 1 : 0,\r\n ProNumber : ProNumber ? +ProNumber : 0,\r\n ProjectID : ProjectID ? ProjectID.ProjectID : \"\",\r\n DepartmentID : DepartmentID,\r\n TeamID : TeamID,\r\n TrainingPurpose : TrainingPurpose,\r\n Content : Content,\r\n TrainingPeriod : TrainingPeriod,\r\n TrainingMonthNum : TrainingMonthNum,\r\n ProAverageCosts : ProAverageCosts,\r\n ProCurrencyID : CurrencyID,\r\n ProCost : ProCost ? +ProCost : 0,\r\n ProExchangeRate : ProExchangeRate ? +ProExchangeRate : 0,\r\n ProNote : ProNote,\r\n ProCCost : ProCCost ? +ProCCost : 0,\r\n Language : Config.language || '84',\r\n arrAttachment : JSON.stringify(arrAttachments),\r\n employee : JSON.stringify(selectedEmployeeID)\r\n };\r\n\r\n if (mode === 'add') {\r\n params = { ...params, HREmployeeID };\r\n }\r\n else if (mode === \"edit\") params = { ...params, ProBatchID, ProposalID };\r\n const notifyBeforeSave = selectedEmployeeID.length === params.ProNumber ? \r\n Config.lang(\"Ban_co_chac_muon_luu_khong?\") :\r\n Config.lang(\"So_luong_nhan_vien_khong_bang_de_xuat\")\r\n Config.popup.show('YES_NO', notifyBeforeSave, () => {\r\n this.setState({ formLoading: true });\r\n this.props.W38F2001Actions[mode](params, (errors, data) => {\r\n this.setState({ formLoading: false });\r\n if (errors) {\r\n let message = errors.message || Config.lang(\"Loi_chua_xac_dinh\");\r\n Config.popup.show('INFO', message);\r\n return false;\r\n }\r\n if (data.Status === 1) {\r\n const msg = data.Message || Config.lang(\"Loi_chua_xac_dinh\");\r\n Config.popup.show('INFO', msg);\r\n return false;\r\n } else {\r\n Config.notify.show(\"success\", Config.lang(\"Luu_thanh_cong\"), 2000);\r\n setTimeout(() => {\r\n this.onBack();\r\n }, 2100);\r\n }\r\n });\r\n });\r\n };\r\n\r\n getDefaultDepartment = () => {\r\n const user = Config.profile;\r\n if (user) {\r\n this.setState({HREmployeeID: user.HREmployeeID});\r\n const u = Config.getUser({ EmployeeID: user.HREmployeeID });\r\n if (u && u.DepartmentID) {\r\n const { formData } = this.state;\r\n formData.DepartmentID = u.DepartmentID\r\n this.props.W38F2001Actions.resetProps(u.DepartmentID);\r\n this.setState({formData});\r\n }\r\n }\r\n }\r\n\r\n getInfo = (flag, nextProps) => {\r\n const { location } = nextProps ? nextProps : this.props;\r\n if (location && location.state) {\r\n return {\r\n mode: location.state.mode ? location.state.mode : 'add',\r\n ProposalID: location.state.ProposalID ? location.state.ProposalID : '',\r\n ProBatchID: location.state.ProBatchID ? location.state.ProBatchID : '',\r\n }\r\n } else {\r\n if (flag) {\r\n browserHistory.push(Config.getRootPath() + \"W38F2000\");\r\n return null;\r\n }\r\n return false;\r\n }\r\n };\r\n\r\n UNSAFE_componentWillMount = async () => {\r\n const { mode } = this.getInfo();\r\n if (mode === 'add') {\r\n this.getDefaultDepartment();\r\n } else {\r\n await this.loadForm();\r\n this.loadGrid(1);\r\n this.loadAttachments();\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n if (!this.getInfo()) return;\r\n const { mode } = this.getInfo();\r\n this.loadCboDepartments();\r\n this.loadCboTeams();\r\n this.loadCboProjects();\r\n this.loadCurrency();\r\n this.loadCboTrainingField();\r\n if(mode && mode !== \"add\") {\r\n if (mode === 'view') {\r\n this.setState({disabled: true});\r\n } else {\r\n this.setState({isUpdated: true});\r\n }\r\n }\r\n this.onChange('ProAverageCosts', {value: 0});\r\n };\r\n\r\n UNSAFE_componentWillReceiveProps = (nextProps) => {\r\n // const {TransID} = this.getInfo(false, nextProps);\r\n // const {formData} = this.state;\r\n // if (TransID !== formData.TransID) {\r\n // this.loadForm();\r\n // this.loadAttachments();\r\n // }\r\n };\r\n\r\n openEmployeeSelect = () => {\r\n const { selectedEmployeeID, NotJoinTrain } = this.state;\r\n this.setState({\r\n showEmployeeSelect: true,\r\n dataDefaults: {\r\n selectedRowKeys: selectedEmployeeID,\r\n NotJoinTrain: NotJoinTrain,\r\n isLoaded: true\r\n }\r\n });\r\n };\r\n\r\n closeEmployeeSelect = () => {\r\n this.setState({ showEmployeeSelect: false, dataDefaults: null });\r\n };\r\n\r\n onSelectedEmployee = (EmployeeIDs) => {\r\n const { selectedEmployeeID } = this.state;\r\n const trainingDataEmployeeID = selectedEmployeeID.map(e => e.EmployeeID);\r\n this.closeEmployeeSelect();\r\n EmployeeIDs.forEach(id => {\r\n if (trainingDataEmployeeID.indexOf(id) < 0) {\r\n this.setState({ gridLoading: true });\r\n this.loadGrid(1);\r\n if (!this.state.isUpdated) {\r\n this.setState({ isUpdated: true });\r\n }\r\n return;\r\n }\r\n })\r\n };\r\n\r\n onDelete = ({EmployeeID}) => {\r\n Config.popup.show('YES_NO', Config.lang(\"Ban_co_chac_muon_xoa?\"), () => {\r\n this.props.W38F2001Actions.removeItem(EmployeeID, error => {\r\n if (error) {\r\n Config.popup.show('INFO', Config.lang(\"Loi_chua_xac_dinh\"));\r\n }\r\n // Remove EmployeeID out EmployeeIDs state\r\n const { selectedEmployeeID } = this.state;\r\n this.setState({\r\n selectedEmployeeID: selectedEmployeeID.filter(e => e !== EmployeeID)\r\n });\r\n });\r\n });\r\n };\r\n\r\n onBack = () => {\r\n this.props.W38F2001Actions.resetProps();\r\n browserHistory.goBack();\r\n };\r\n\r\n renderEmpProfile = e => {\r\n const { classes } = this.props;\r\n const { data } = e.row;\r\n\r\n return (\r\n
\r\n \r\n
\r\n
{data.EmployeeName} - {data.EmployeeID}
\r\n
{data.DutyName || \"\"}
\r\n
\r\n
\r\n );\r\n };\r\n\r\n renderAction = e => {\r\n const { mode } = this.getInfo();\r\n const { data } = e.row;\r\n return (\r\n \r\n
\r\n this.onDelete(data)}\r\n >\r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n render() {\r\n if (!this.getInfo(true)) return null;\r\n const { mode } = this.getInfo();\r\n const { getCboDepartments, getCboTeam, getLoadCurrency, dataForm, dataGrid, classes } = this.props;\r\n\r\n const {dataCboTrainingField, dataTrainingCourse, dataCboProjects, loadingTrainingField, loadingTrainingCourse, loadingProjects, gridLoading, expandedFirst, error,\r\n dataOldAttachments, formLoading, isUpdated, disabled, showEmployeeSelect, showEmployeeList, formData, TrainningEmpName, DateRangeForm, dataDefaults\r\n } = this.state;\r\n\r\n const { TrainingCourseID, IsInternal, ProNumber, TrainingPeriod, TrainingMonthNum, ProAverageCosts, ProCost, ProExchangeRate, ProCCost } = formData;\r\n return (\r\n <>\r\n {showEmployeeSelect && this.setState({NotJoinTrain: value})}\r\n onChosen={this.onSelectedEmployee} \r\n onClose={this.closeEmployeeSelect} />}\r\n \r\n \r\n }\r\n style={{ textTransform: 'uppercase' }}\r\n size={\"large\"}\r\n className={\"mgr5\"}\r\n disabled={formLoading || mode === 'view' || !(TrainingCourseID && TrainingCourseID.TrainingCourseID)}\r\n onClick={this.openEmployeeSelect} />\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n {Config.lang(\"Thong_tin_chung\")}\r\n \r\n\r\n \r\n : }\r\n loading={formLoading}\r\n style={{ textTransform: 'uppercase' }}\r\n size={\"large\"}\r\n onClick={() => this.setState({showEmployeeList: !showEmployeeList})} />\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n this.onChange(\"TrainingFieldID\", e)}\r\n onInputChanged={(e) => {\r\n if (this.filterCboTrainingField.timer) clearTimeout(this.filterCboTrainingField.timer);\r\n this.filterCboTrainingField.strSearch = e.target.value;\r\n this.filterCboTrainingField.timer = setTimeout(() => {\r\n this.filterCboTrainingField.skip = 0;\r\n this.filterCboTrainingField.limit = 10;\r\n this.loadCboTrainingField(true);\r\n }, 700);\r\n }}\r\n onLoadMore={(e) => {\r\n this.filterCboTrainingField.skip = e.skip;\r\n this.filterCboTrainingField.limit = e.limit;\r\n this.loadCboTrainingField();\r\n }}\r\n />\r\n \r\n \r\n this.TrainingCourse = ref}\r\n dataSource={dataTrainingCourse}\r\n skip={this.filterTrainingCourse.skip}\r\n limit={this.filterTrainingCourse.limit}\r\n displayExpr={'TrainingCourseName'}\r\n keyExpr={'TrainingCourseID'}\r\n valueExpr={'TrainingCourseID'}\r\n value={dataForm && dataForm.TrainingCourseID ? { TrainingCourseID: dataForm.TrainingCourseID, TrainingCourseName: dataForm.TrainingCourseName} : ''}\r\n shrink={true}\r\n disabled={disabled}\r\n required\r\n showClearButton={true}\r\n margin={\"normal\"}\r\n loading={loadingTrainingCourse}\r\n stylingMode={'underlined'}\r\n label={Config.lang('Khoa_dao_tao')}\r\n // showCheckBoxMode={\"none\"}\r\n onValueChanged={(e) => this.onChange(\"TrainingCourseID\", e)}\r\n onInputChanged={(e) => {\r\n if (this.filterTrainingCourse.timer) clearTimeout(this.filterTrainingCourse.timer);\r\n this.filterTrainingCourse.strSearch = e.target.value;\r\n this.filterTrainingCourse.timer = setTimeout(() => {\r\n this.filterTrainingCourse.skip = 0;\r\n this.filterTrainingCourse.limit = 10;\r\n this.loadTrainingCourse(true);\r\n }, 700);\r\n }}\r\n onLoadMore={(e) => {\r\n this.filterTrainingCourse.skip = e.skip;\r\n this.filterTrainingCourse.limit = e.limit;\r\n this.loadTrainingCourse();\r\n }}\r\n />\r\n \r\n {!showEmployeeList && \r\n \r\n \r\n {Config.lang(\"Nguoi_dao_tao\")}\r\n \r\n \r\n \r\n this.setState({TrainningEmpName: e.target.value})}\r\n margin={\"normal\"}\r\n fullWidth\r\n />\r\n \r\n \r\n this.onChange('IsInternal', {value: checked})}\r\n />\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {Config.lang(\"Thoi_gian_dao_tao\")}\r\n \r\n {this.onChangeDate(ranges)}}\r\n showDateDisplay={false}\r\n ranges={DateRangeForm}\r\n fullWidth/>\r\n \r\n \r\n \r\n \r\n \r\n {Config.lang(\"So_luong_de_xuat\")}\r\n \r\n = 0 ? ProNumber : '')}\r\n // required={true}\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n type={\"number\"}\r\n disabled={disabled}\r\n inputProps={{min: 0}}\r\n onChange={(e) => this.onChange('ProNumber', e)}\r\n margin={\"normal\"}\r\n fullWidth\r\n />\r\n \r\n \r\n {showEmployeeList && \r\n \r\n \r\n {Config.lang(\"Nguoi_dao_tao\")}\r\n \r\n \r\n \r\n this.setState({TrainningEmpName: e.target.value})}\r\n margin={\"normal\"}\r\n fullWidth\r\n />\r\n \r\n \r\n this.onChange('IsInternal', {value: checked})}\r\n />\r\n \r\n \r\n \r\n }\r\n \r\n this.onChange(\"ProjectID\", e)}\r\n onInputChanged={(e) => {\r\n if (this.filterCboProjects.timer) clearTimeout(this.filterCboProjects.timer);\r\n this.filterCboProjects.strSearch = e.target.value;\r\n this.filterCboProjects.timer = setTimeout(() => {\r\n this.filterCboProjects.skip = 0;\r\n this.filterCboProjects.limit = 20;\r\n this.loadCboProjects(true);\r\n }, 700);\r\n }}\r\n onLoadMore={(e) => {\r\n this.filterCboProjects.skip = e.skip;\r\n this.filterCboProjects.limit = e.limit;\r\n this.loadCboProjects();\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n this.onChange(\"DepartmentID\", e)}\r\n value={dataForm && dataForm.DepartmentID ? dataForm.DepartmentID : ''}\r\n disabled={disabled}\r\n />\r\n \r\n \r\n this.onChange(\"TeamID\", e)}\r\n displayExpr={\"TeamName\"}\r\n valueExpr={\"TeamID\"}\r\n value={dataForm && dataForm.TeamID ? dataForm.TeamID : ''}\r\n disabled={disabled}\r\n />\r\n \r\n \r\n \r\n \r\n this.onChange(\"TrainingPurpose\", e)}\r\n margin={\"normal\"}\r\n multiline\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n this.onChange('Content', e)}\r\n margin={\"normal\"}\r\n multiline\r\n fullWidth\r\n />\r\n \r\n \r\n {/* collap div employee */}\r\n
\r\n this.setState({expandedFirst: !expandedFirst})}\r\n >\r\n \r\n \r\n
\r\n \r\n \r\n this.onChange(\"TrainingPeriod\", e)}\r\n />\r\n \r\n\r\n \r\n = 0 ? TrainingMonthNum : '')}\r\n type={'number'}\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n disabled={disabled}\r\n inputProps={{min: 0}}\r\n fullWidth\r\n onChange={e => this.onChange(\"TrainingMonthNum\", e)}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n {Config.lang(\"Chi_phi_binh_quan\")}\r\n \r\n \r\n \r\n = 0 ? ProAverageCosts : '')}\r\n fullWidth\r\n onChange={e => this.onChange(\"ProAverageCosts\", e)}\r\n />\r\n \r\n \r\n this.onChange(\"CurrencyID\", e)}\r\n value={dataForm && dataForm.ProCurrencyID ? dataForm.ProCurrencyID : ''}\r\n disabled={disabled}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n = 0 ? ProCost : '')}\r\n onChange={e => this.onChange(\"ProCost\", e)}\r\n />\r\n \r\n \r\n this.onChange(\"ProExchangeRate\", e)}\r\n value={String( ProExchangeRate ? (+ProExchangeRate).toFixed(2) : '')}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n this.onChange('ProNote', e)}\r\n margin={\"normal\"}\r\n multiline\r\n fullWidth\r\n />\r\n \r\n \r\n = 0 ? (+ProCCost).toFixed(2) : '')}\r\n onChange={e => this.onChange(\"ProCCost\", e)}\r\n />\r\n VNĐ\r\n \r\n \r\n
\r\n
\r\n \r\n
this.setState({expandedFirst: !expandedFirst})}>\r\n \r\n
\r\n {expandedFirst ? Config.lang(\"Thu_nho\") : Config.lang(\"Mo_rong\")}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n (this.attRef = ref)}\r\n showButton={true}\r\n files={dataOldAttachments}\r\n disabled={formLoading || disabled}\r\n maxLength={5}\r\n uploading={formLoading}\r\n onUploading={this.onUploading}\r\n onChanged={this.onChangeAttachments}\r\n />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nclass NumberFormatCustom extends Component {\r\n\r\n render() {\r\n const {name, inputRef, onChange, ...props} = this.props;\r\n return (\r\n {\r\n if (onChange) {\r\n onChange({\r\n target: {\r\n name: name,\r\n value: e.value\r\n }\r\n })\r\n }\r\n }}\r\n />\r\n );\r\n }\r\n}\r\n\r\nexport default compose(\r\n connect(\r\n state => ({\r\n cboTrainingField : state.W38F2001.cboTrainingField,\r\n cboTrainingCourse : state.W38F2001.cboTrainingCourse,\r\n dataForm : state.W38F2001.dataForm,\r\n dataGrid : state.W38F2001.dataGrid,\r\n getLoadCurrency : state.general.getLoadCurrency,\r\n getCboDepartments : state.general.getCboDepartments,\r\n getCboTeam : state.general.getCboTeam,\r\n getLoadEducation : state.general.getLoadEducation,\r\n }),\r\n dispatch => ({\r\n generalActions: bindActionCreators(generalActions, dispatch),\r\n W38F2001Actions: bindActionCreators(W38F2001Actions, dispatch)\r\n })\r\n ),\r\n withStyles(styles, {withTheme: true})\r\n)(W38F2001);","/**\r\n * @copyright 2020 @ DigiNet\r\n * @author CANHTOAN\r\n * @create 7/24/2020\r\n * @Example \r\n */\r\n\r\nimport React from \"react\";\r\nimport {FormGroup, Col, Row} from \"react-bootstrap\";\r\nimport Config from \"../../../../config\";\r\nimport ActionToolbar from \"../../../common/toolbar/action-toolbar\";\r\nimport Approvals from \"../../../approvals/approvals\";\r\nimport {bindActionCreators, compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport { FormLabel as Label, withStyles } from \"@material-ui/core\";\r\nimport ButtonGeneral from \"../../../common/button/button-general\";\r\nimport Filter from \"../../../filter/filter\";\r\nimport { Combo } from \"../../../common/form-material\";\r\nimport DateBoxPicker from \"../../../common/form-material/date-box\";\r\nimport * as ApprovalActions from \"../../../../redux/approvals/approvals_actions\";\r\nimport * as generalActions from \"../../../../redux/general/general_actions\";\r\nimport W38F2002General from \"./W38F2002General\";\r\n\r\nconst styles = theme => ({\r\n heading: {\r\n textTransform: \"uppercase\",\r\n fontWeight: 500\r\n },\r\n ExpansionPanelSummary: {\r\n padding: 0,\r\n maxWidth: 300,\r\n color: theme.palette.primary.main,\r\n \"& .MuiExpansionPanelSummary-content\": {\r\n margin: \"12px 0\"\r\n },\r\n \"&.Mui-expanded\": {\r\n minHeight: \"inherit\"\r\n }\r\n },\r\n});\r\nclass W38F2002 extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n iPermission: 0,\r\n dataForm: {},\r\n VoucherID: \"\",\r\n cboEmployeeLoading: false,\r\n dataCboEmployees: {\r\n rows: [],\r\n total: 0\r\n }\r\n }\r\n this.filter = {\r\n Search: \"\",\r\n AppStatusID: null,\r\n Employee: null,\r\n DateFrom: null,\r\n DateTo: null,\r\n skip: 0,\r\n limit: 10\r\n }\r\n this.filterCboEmployees = {\r\n strSearch: \"\",\r\n skip: 0,\r\n limit: 50\r\n };\r\n }\r\n\r\n loadPermission = async () => {\r\n await this.props.generalActions.getPermission(\"W38F2002\", (isPer) => {\r\n this.setState({iPermission: isPer});\r\n });\r\n };\r\n\r\n componentDidMount = async () => {\r\n await this.loadPermission();\r\n if (!this.state.iPermission) return;\r\n this.loadCboEmployees();\r\n this.loadGrid();\r\n };\r\n\r\n componentDidUpdate (prevProps, prevState, snapshot) {\r\n const {getGridApproval} = this.props;\r\n Config.callChildForm({\r\n FormID: \"W38F2002\",\r\n // ID: voucher_id,\r\n keyExpr: \"VoucherID\",\r\n data: getGridApproval && getGridApproval.rows ? getGridApproval.rows : [],\r\n onLoad: (params) => this.loadGrid(params && params.ID),\r\n onAction: (e, data) => {\r\n const {ID} = e || \"\";\r\n this.refs['Approvals'].showPopup(data);\r\n this.loadFormInfo(ID);\r\n }\r\n }, this.props);\r\n }\r\n\r\n onSelectionChanged = (e) => {\r\n if (!e) return false;\r\n this.loadFormInfo(e.VoucherID);\r\n };\r\n\r\n onDrawerClosed = () => {\r\n this.setState({VoucherID: \"\"});\r\n };\r\n\r\n loadFormInfo = (VoucherID, cb) => {\r\n const params = {\r\n DivisionID: Config.getDivisionID(),\r\n FormID: \"W38F2002\",\r\n Language: Config.language || \"84\",\r\n VoucherID: VoucherID ? VoucherID : \"\",\r\n };\r\n this.props.approvalActions.getFormInfo(params, (error, data) => {\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n if (data) {\r\n this.setState({\r\n dataForm: data\r\n });\r\n cb && cb (data);\r\n }\r\n });\r\n };\r\n\r\n renderFormInfo = (data) => {\r\n return (\r\n \r\n )\r\n };\r\n\r\n handleFilterChange = (key, e) => {\r\n if (key && e) {\r\n const value = e.value || e.target?.value;\r\n this.filter[key] = value;\r\n }\r\n };\r\n\r\n loadGrid = (VoucherID) => {\r\n const {voucher_id} = Config.getUrlParams(this.props);\r\n VoucherID = VoucherID ? VoucherID : (voucher_id ? voucher_id : \"\");\r\n const {AppStatusID, Employee, DateFrom, DateTo, skip, limit} = this.filter;\r\n const params = {\r\n VoucherID,\r\n DivisionID: Config.getDivisionID(),\r\n FormID: 'W38F2002',\r\n Language: Config.language || '84',\r\n ApprovalStatus: AppStatusID,\r\n EmployeeID: Employee && Employee.EmployeeID ? Employee.EmployeeID : \"\",\r\n DateFrom: DateFrom,\r\n DateTo: DateTo,\r\n skip: skip,\r\n limit: limit,\r\n };\r\n this.props.approvalActions.getGridApprovals(params, (error) => {\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n });\r\n };\r\n\r\n loadCboEmployees = (isReset) => {\r\n const {FormID} = this.props;\r\n const param = {\r\n HostID: \"\",\r\n Type: \"EmployeeID\",\r\n FormID: FormID,\r\n Language: Config.language || \"84\",\r\n skip: this.filterCboEmployees.skip,\r\n limit: this.filterCboEmployees.limit,\r\n search: this.filterCboEmployees.strSearch\r\n };\r\n this.setState({cboEmployeeLoading: true});\r\n this.props.generalActions.getCboEmployees(param, (error, data) => {\r\n this.setState({cboEmployeeLoading: false});\r\n if (error) {\r\n Config.popup.show(\"ERROR\", error);\r\n return false;\r\n }\r\n if (data) {\r\n const {dataCboEmployees} = this.state;\r\n const rows = data && data.rows ? data.rows : data;\r\n const total = data && data.total ? data.total : data.length;\r\n this.setState({\r\n dataCboEmployees: {\r\n rows: isReset ? rows : dataCboEmployees.rows.concat(rows),\r\n total: total\r\n }\r\n })\r\n }\r\n });\r\n };\r\n\r\n renderFilter = () => {\r\n const {getCboStatus} = this.props;\r\n const {dataCboEmployees, cboEmployeeLoading} = this.state;\r\n return (\r\n {\r\n return (\r\n <>\r\n \r\n \r\n \r\n
\r\n \r\n this.handleFilterChange(\"DateFrom\", e)}\r\n />\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n this.handleFilterChange(\"DateTo\", e)\r\n }\r\n />\r\n
\r\n \r\n
\r\n \r\n \r\n this.handleFilterChange(\"AppStatusID\", e)}\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n const {data} = e;\r\n if (!data) return null;\r\n return data.EmployeeID + ' - ' + data.EmployeeName;\r\n }}\r\n showClearButton={true}\r\n // showCheckBoxMode={\"none\"}\r\n onValueChanged={(e) => this.handleFilterChange(\"Employee\", e)}\r\n onInputChanged={(e) => {\r\n this.filterCboEmployees.strSearch = e.target.value;\r\n this.filterCboEmployees.skip = 0;\r\n this.loadCboEmployees(true);\r\n }}\r\n onLoadMore={(e) => {\r\n this.filterCboEmployees.skip = e.skip;\r\n this.filterCboEmployees.limit = e.limit;\r\n this.loadCboEmployees();\r\n }}\r\n />\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n );\r\n }}\r\n />\r\n );\r\n };\r\n\r\n render() {\r\n const { getGridApproval } = this.props;\r\n const {iPermission, dataForm, loading} = this.state;\r\n if (!iPermission) return null;\r\n\r\n return (\r\n \r\n
{this.renderFilter()}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n this.renderFormInfo(e)}\r\n onSelectionChanged={this.onSelectionChanged}\r\n onDrawerClosed={this.onDrawerClosed}\r\n />\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n}\r\n\r\nexport default compose(connect(state => ({\r\n getCboStatus: state.approvals.getCboStatus,\r\n getGridApproval: state.approvals.getGridApproval,\r\n getAttachments: state.approvals.getAttachments,\r\n getHistorys: state.approvals.getHistorys,\r\n}),\r\n (dispatch) => ({\r\n generalActions: bindActionCreators(generalActions, dispatch),\r\n approvalActions: bindActionCreators(ApprovalActions, dispatch),\r\n })\r\n), withStyles(styles, {withTheme: true}))(W38F2002);\r\n","/**\r\n * @copyright 2020 @ DigiNet\r\n * @author CANHTOAN\r\n * @create 7/24/2020\r\n * @Example \r\n */\r\n\r\nimport React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport {FormGroup, Col, Row} from \"react-bootstrap\";\r\nimport Config from \"../../../../config\";\r\nimport LabelText from \"../../../common/label-text/label-text\";\r\nimport {withStyles, FormControl, InputLabel} from \"@material-ui/core\";\r\nimport GridContainer from \"../../../grid-container/grid-container\";\r\nimport { Column } from \"devextreme-react/data-grid\";\r\nimport * as _ from \"lodash\";\r\n\r\nconst styles = {\r\n ExpansionPanelSummary: {\r\n margin: 0,\r\n minHeight: 0,\r\n \"&.Mui-expanded\": {\r\n minHeight: 0\r\n },\r\n \"& .MuiExpansionPanelSummary-content\": {\r\n margin: 0,\r\n \"&.Mui-expanded\": {\r\n margin: 0\r\n }\r\n }\r\n },\r\n shrink: {\r\n transform: 'translate(0, 1.5px) scale(1)',\r\n },\r\n};\r\n\r\nclass W38F2002General extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n expanded: false,\r\n Employee: []\r\n }\r\n }\r\n\r\n render() {\r\n const {data, classes} = this.props;\r\n if (!Object.keys(this.props.data).length) return null;\r\n const Employee = data.Employee || [];\r\n\r\n let FromDate = _.get(data, \"FromDate\", \"\");\r\n FromDate = FromDate ? Config.convertDate(FromDate, \"\", \"DD/MM/YYYY\", (/t.*?z/i).test(FromDate)) : '';\r\n let ToDate = _.get(data, \"ToDate\", \"\");\r\n ToDate = ToDate ? Config.convertDate(ToDate, \"\", \"DD/MM/YYYY\", (/t.*?z/i).test(ToDate)) : '';\r\n const hyphen = FromDate && ToDate ? ' - ' : '';\r\n const TimeTrain = FromDate + hyphen + ToDate;\r\n const IsInternalName = _.get(data, \"IsInternalName\", \"\");\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Config.lang(\"DHR_Danh_sach_nhan_vien\")}\r\n \r\n this.redirectScreen(\"view\", e)}\r\n // selectedRowKey={selectedRowKeys}\r\n height={45*5+45}\r\n style={{ margin: '16px 0px 0px 0px' }}\r\n dataSource={Employee}\r\n totalItems={Employee.length}\r\n showBorders={true}\r\n showColumnLines={true}\r\n // hoverStateEnabled={true}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n}\r\n\r\nW38F2002General.propTypes = {\r\n data: PropTypes.object\r\n};\r\n\r\nexport default withStyles(styles)(W38F2002General);\r\n","/**\r\n * @copyright 2019 @ DigiNet\r\n * @author TRIHAO\r\n * @create 2/14/2020\r\n * @Example\r\n */\r\n\r\nimport React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport * as W29F3000Actions from \"../../../../redux/W2X/W29F3000/W29F3000_actions\";\r\nimport * as generalActions from \"../../../../redux/general/general_actions\";\r\nimport { bindActionCreators, compose } from \"redux\";\r\nimport Config from \"../../../../config\";\r\nimport { Row, Col, FormGroup } from \"react-bootstrap\"\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport { Combo } from \"../../../common/form-material\";\r\nimport DateBoxPicker from \"../../../common/form-material/date-box\";\r\nimport ActionToolbar from \"../../../common/toolbar/action-toolbar\";\r\nimport moment from \"moment\";\r\nimport { browserHistory } from \"react-router\";\r\nimport { FormControl, InputLabel } from \"@material-ui/core\";\r\nimport MForm from \"../../../common/form-material/form\";\r\nimport ButtonCustom from \"../../../common/button/button-custom\";\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport { Loading } from \"../../../common/loading/loading\";\r\nimport ButtonGeneral from \"../../../common/button/button-general\";\r\nimport Icons from \"../../../common/icons/\";\r\n\r\nconst styles = {\r\n previewLoading: {\r\n position: 'absolute',\r\n },\r\n view: {\r\n height: 'calc(100vh - 165px)'\r\n },\r\n hiddenPreview: {\r\n width: 0\r\n }\r\n};\r\nclass W29F3000 extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n iPermission: 0,\r\n dataReports: [],\r\n dataHandOver: [],\r\n dataPeriod: [],\r\n dataForm: {\r\n Report: null,\r\n Project: null,\r\n HandOverID: \"\",\r\n PeriodItem: null,\r\n DateFrom: null,\r\n DateTo: null\r\n },\r\n dataCboProjects: {\r\n rows: [],\r\n total: 0\r\n },\r\n error: {\r\n ReportID: \"\",\r\n },\r\n downloadURL: \"\",\r\n downloadExt: \"\",\r\n downloadName: \"\",\r\n blobUrl: \"\",\r\n showPreview: false,\r\n\r\n //loading..\r\n loading: {},\r\n exportLoading: false,\r\n dateLoading: false,\r\n };\r\n this.loading = {};\r\n this.filterCboProject = {\r\n timer: null,\r\n strSearch: \"\",\r\n skip: 0,\r\n limit: 50\r\n };\r\n }\r\n\r\n async loadPermission() {\r\n await this.props.generalActions.getPermission(\"W29F3000\", (isPer) => {\r\n this.setState({ iPermission: isPer });\r\n });\r\n };\r\n\r\n loadCboReports = () => {\r\n const params = {\r\n ReportTypeID: \"D29R4090\",\r\n };\r\n this._setLoading(\"ReportID\", true);\r\n this.props.w29f3000Actions.getCboReports(params, (errors, data) => {\r\n this._setLoading(\"ReportID\", false);\r\n if (errors) {\r\n let message = errors.message || Config.lang(\"DHR_Loi_chua_xac_dinh\");\r\n Config.popup.show('INFO', message);\r\n return false;\r\n }\r\n if (data) {\r\n this.setState({\r\n dataReports: data\r\n });\r\n }\r\n });\r\n };\r\n\r\n loadCboProjects = (isReset) => {\r\n const { dataForm } = this.state;\r\n const ProjectID = dataForm.Project && dataForm.Project.ProjectID ? dataForm.Project.ProjectID : \"\";\r\n const params = {\r\n HostID: \"\",\r\n FormID: \"W29F3000\",\r\n Language: Config.language || \"84\",\r\n skip: this.filterCboProject.skip,\r\n limit: this.filterCboProject.limit,\r\n search: this.filterCboProject.strSearch\r\n };\r\n this._setLoading(\"ProjectID\", true);\r\n this.props.generalActions.getCboProjects(params, (errors, data) => {\r\n this._setLoading(\"ProjectID\", false);\r\n if (errors) {\r\n let message = errors.message || Config.lang(\"DHR_Loi_chua_xac_dinh\");\r\n Config.popup.show('INFO', message);\r\n return false;\r\n }\r\n if (data) {\r\n const { dataCboProjects } = this.state;\r\n const rows = data && data.rows ? data.rows : data;\r\n const total = data && data.total ? data.total : data.length;\r\n this.setState({\r\n dataCboProjects: {\r\n rows: isReset ? rows : dataCboProjects.rows.concat(rows),\r\n total: total\r\n },\r\n ...(!ProjectID ? { dataHandOver: [] } : {})\r\n });\r\n }\r\n });\r\n };\r\n\r\n loadCboHandOver = () => {\r\n const { dataForm } = this.state;\r\n const ProjectID = dataForm.Project && dataForm.Project.ProjectID ? dataForm.Project.ProjectID : \"\";\r\n if (ProjectID) {\r\n const params = {\r\n ProjectID: ProjectID,\r\n };\r\n this._setLoading(\"HandOverID\", true);\r\n this.props.w29f3000Actions.getCboHandOver(params, (errors, data) => {\r\n this._setLoading(\"HandOverID\", false);\r\n if (errors) {\r\n let message = errors.message || Config.lang(\"DHR_Loi_chua_xac_dinh\");\r\n Config.popup.show('INFO', message);\r\n return false;\r\n }\r\n if (data) {\r\n this.setState({\r\n dataHandOver: data\r\n });\r\n }\r\n });\r\n }\r\n };\r\n\r\n loadCboPeriod = () => {\r\n const params = {\r\n DivisionID: Config.getDivisionID(),\r\n };\r\n this._setLoading(\"PeriodItem\", true);\r\n this.props.w29f3000Actions.getCboPeriod(params, (errors, data) => {\r\n this._setLoading(\"PeriodItem\", false);\r\n if (errors) {\r\n let message = errors.message || Config.lang(\"DHR_Loi_chua_xac_dinh\");\r\n Config.popup.show('INFO', message);\r\n return false;\r\n }\r\n if (data) {\r\n this.setState({\r\n dataPeriod: data\r\n });\r\n }\r\n });\r\n };\r\n\r\n loadDateData = () => {\r\n const { dataForm } = this.state;\r\n if (dataForm && dataForm.PeriodItem) {\r\n const params = {\r\n TranMonth: dataForm.PeriodItem.TranMonth ? dataForm.PeriodItem.TranMonth : 0,\r\n TranYear: dataForm.PeriodItem.TranYear ? dataForm.PeriodItem.TranYear : 0,\r\n };\r\n this._setLoading(\"DateData\", true);\r\n this.props.w29f3000Actions.getDateData(params, (errors, data) => {\r\n this._setLoading(\"DateData\", false);\r\n if (errors) {\r\n let message = errors.message || Config.lang(\"DHR_Loi_chua_xac_dinh\");\r\n Config.popup.show('INFO', message);\r\n return false;\r\n }\r\n if (data) {\r\n const stateDate = {};\r\n if (data.MinDate && moment(data.MinDate).isValid()) {\r\n stateDate.DateFrom = moment(data.MinDate).format(\"YYYY-MM-DD\");\r\n }\r\n if (data.MaxDate && moment(data.MaxDate).isValid()) {\r\n stateDate.DateTo = moment(data.MaxDate).format(\"YYYY-MM-DD\");\r\n }\r\n this._setFormData(stateDate);\r\n }\r\n });\r\n }\r\n };\r\n\r\n exportExcelTemplate = (isPreview) => {\r\n const { dataForm } = this.state;\r\n const ReportID = dataForm && dataForm.Report && dataForm.Report.ReportID ? dataForm.Report.ReportID : \"\";\r\n const TemplateURL = dataForm && dataForm.Report && dataForm.Report.URL ? Config.getCDNPath() + dataForm.Report.URL : \"\";\r\n //validate form...\r\n const validateRules = [\r\n {\r\n name: \"ReportID\",\r\n rules: \"isRequired\",\r\n value: ReportID\r\n },\r\n {\r\n name: \"PeriodItem\",\r\n rules: \"isRequired\",\r\n value: dataForm?.PeriodItem ?? null,\r\n },\r\n {\r\n name: \"DateFrom\",\r\n rules: \"isRequired\",\r\n value: dataForm.DateFrom\r\n },\r\n {\r\n name: \"DateTo\",\r\n rules: \"isRequired\",\r\n value: dataForm.DateTo\r\n }\r\n ];\r\n const validateForm = MForm.formValidation(validateRules);\r\n if (Object.keys(validateForm).length > 0) {\r\n this.setStateErrorText(validateForm);\r\n return false;\r\n } else {\r\n const filters = [\r\n { id: \"ReportID\", type: \"VarChar\", value: ReportID },\r\n { id: \"UserID\", type: \"VarChar\", value: Config.profile.UserID || \"\" },\r\n { id: \"Language\", type: \"Varchar\", value: \"84\" },\r\n { id: \"DateFrom\", type: \"DATETIME\", value: dataForm && dataForm.DateFrom ? dataForm.DateFrom : null },\r\n { id: \"DateTo\", type: \"DATETIME\", value: dataForm && dataForm.DateTo ? dataForm.DateTo : null },\r\n { id: \"ReportTypeID\", type: \"VarChar\", value: \"D29R4090\" },\r\n { id: \"ProjectID\", type: \"VarChar\", value: dataForm.Project && dataForm.Project.ProjectID ? dataForm.Project.ProjectID : \"\" },\r\n { id: \"ProjectName\", type: \"NVarChar\", value: dataForm.Project && dataForm.Project.ProjectName ? dataForm.Project.ProjectName : \"\" },\r\n { id: \"HandOverID\", type: \"VarChar\", value: dataForm && dataForm.HandOverID ? dataForm.HandOverID : \"\" },\r\n {\r\n id: \"PeriodTime\",\r\n type: \"VarChar\",\r\n value: dataForm && dataForm.PeriodItem && dataForm.PeriodItem.PeriodTime ? dataForm.PeriodItem.PeriodTime : \"\"\r\n },\r\n ];\r\n const params = {\r\n token: Config.token.id,\r\n ReportTypeID: \"D29R4090\",\r\n ReportID: ReportID,\r\n TemplateURL: TemplateURL,\r\n isPDF: 0,\r\n Params: JSON.stringify(filters)\r\n };\r\n this._setLoading(isPreview ? \"Preview\" : \"Export\", true);\r\n this.props.generalActions.exportExcelTemplate(params, (errors, data) => {\r\n this._setLoading(isPreview ? \"Preview\" : \"Export\", false);\r\n if (errors) {\r\n let message = Config.lang(\"DHR_Loi_chua_xac_dinh\");\r\n switch (errors.code) {\r\n case \"EX008\":\r\n message = Config.lang(\"DHR_Mau_bao_cao_khong_duoc_tim_thay\");\r\n break;\r\n case \"MSQ005\":\r\n message = Config.lang(\"DHR_Du_lieu_xuat_excel_rong\");\r\n break;\r\n case \"MSQ006\":\r\n message = Config.lang(\"DHR_Truong_ngay_la_bat_buoc\");\r\n break;\r\n case \"EXP001\":\r\n message = Config.lang(\"DHR_Du_lieu_dau_vao_la_bat_buoc\");\r\n break;\r\n default:\r\n break;\r\n }\r\n Config.popup.show('INFO', message);\r\n return false;\r\n }\r\n if (data) {\r\n // const objectURL = URL.createObjectURL(data.content);\r\n this.setState({\r\n downloadURL: data.URL ? data.URL : \"\",\r\n downloadExt: data.fileExt ? data.fileExt : \"\",\r\n downloadName: data.fileName ? data.fileName : \"\",\r\n }, () => {\r\n if (!isPreview) {\r\n let el = document.getElementById(\"linkExportExcel_1\");\r\n el.click();\r\n } else {\r\n this.setState({ showPreview: true });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n };\r\n\r\n previewExcelTemplate = async () => {\r\n const { dataForm } = this.state;\r\n const ReportID = dataForm && dataForm.Report && dataForm.Report.ReportID ? dataForm.Report.ReportID : \"\";\r\n //validate form...\r\n const validateRules = [\r\n {\r\n name: \"ReportID\",\r\n rules: \"isRequired\",\r\n value: ReportID\r\n },\r\n {\r\n name: \"DateFrom\",\r\n rules: \"isRequired\",\r\n value: dataForm.DateFrom\r\n },\r\n {\r\n name: \"DateTo\",\r\n rules: \"isRequired\",\r\n value: dataForm.DateTo\r\n }\r\n ];\r\n const validateForm = MForm.formValidation(validateRules);\r\n if (Object.keys(validateForm).length > 0) {\r\n this.setStateErrorText(validateForm);\r\n return false;\r\n } else {\r\n const filters = [\r\n { id: \"ReportID\", type: \"VarChar\", value: ReportID },\r\n { id: \"UserID\", type: \"VarChar\", value: Config.profile.UserID || \"\" },\r\n { id: \"Language\", type: \"Varchar\", value: \"84\" },\r\n { id: \"DateFrom\", type: \"DATETIME\", value: dataForm && dataForm.DateFrom ? dataForm.DateFrom : null },\r\n { id: \"DateTo\", type: \"DATETIME\", value: dataForm && dataForm.DateTo ? dataForm.DateTo : null },\r\n { id: \"ReportTypeID\", type: \"VarChar\", value: \"D29R4090\" },\r\n { id: \"ProjectID\", type: \"VarChar\", value: dataForm.Project && dataForm.Project.ProjectID ? dataForm.Project.ProjectID : \"\" },\r\n { id: \"HandOverID\", type: \"VarChar\", value: dataForm && dataForm.HandOverID ? dataForm.HandOverID : \"\" },\r\n {\r\n id: \"PeriodTime\",\r\n type: \"VarChar\",\r\n value: dataForm && dataForm.PeriodItem && dataForm.PeriodItem.PeriodTime ? dataForm.PeriodItem.PeriodTime : \"\"\r\n },\r\n ];\r\n let url = Config.env.api + \"/export/preview-excel-report?\";\r\n const params = {\r\n token: Config.token.id,\r\n ReportTypeID: \"D29R4090\",\r\n ReportID: ReportID,\r\n isPDF: 0,\r\n Params: JSON.stringify(filters)\r\n };\r\n\r\n let param = Object.keys(params).map(function (k) {\r\n return encodeURIComponent(k) + '=' + encodeURIComponent(params[k])\r\n }).join('&');\r\n\r\n url = url + param;\r\n this.setState({\r\n showPreview: false\r\n }, () => {\r\n this.setState({\r\n downloadURL: url,\r\n showPreview: true\r\n }, () => {\r\n this._setLoading(\"Preview\", true);\r\n });\r\n });\r\n\r\n }\r\n };\r\n\r\n getInfo = (flag) => {\r\n const { location } = this.props;\r\n if (location && location.state) {\r\n return {\r\n mode: location.state.mode ? location.state.mode : 'add',\r\n AttendanceVoucherID: location.state.AttendanceVoucherID\r\n }\r\n } else {\r\n if (flag) {\r\n browserHistory.push(Config.getRootPath() + \"W29F2005\");\r\n return null;\r\n }\r\n return false;\r\n }\r\n };\r\n\r\n componentDidMount = async () => {\r\n await this.loadPermission();\r\n if (!this.state.iPermission) return;\r\n this.loadCboReports();\r\n this.loadCboProjects();\r\n this.loadCboHandOver();\r\n this.loadCboPeriod();\r\n };\r\n\r\n _setLoading = (key, value, cb) => {\r\n if (!key) return false;\r\n if (typeof key === \"object\") {\r\n this.loading = {\r\n ...this.loading,\r\n ...key\r\n };\r\n } else {\r\n this.loading[key] = value;\r\n }\r\n this.setState({\r\n loading: {\r\n ...this.loading\r\n }\r\n }, () => {\r\n if (cb) cb();\r\n });\r\n };\r\n\r\n _setFormData = (key, value, cb) => {\r\n if (!key) return false;\r\n this.setState({\r\n dataForm: {\r\n ...this.state.dataForm,\r\n ...(typeof key === \"object\" ? key : { [key]: value })\r\n }\r\n }, () => {\r\n if (cb) cb();\r\n });\r\n };\r\n\r\n setStateErrorText = (value) => {\r\n const { error } = this.state;\r\n this.setState({\r\n error: {\r\n ...error,\r\n ...value\r\n }\r\n });\r\n return Object.keys(value).length !== 0;\r\n };\r\n\r\n handleChange = (key, e) => {\r\n if (!key) return false;\r\n switch (key) {\r\n case \"Report\":\r\n this._setFormData(key, e.value);\r\n break;\r\n case \"ProjectID\":\r\n this._setFormData(\"Project\", e.value, () => {\r\n this.loadCboHandOver();\r\n });\r\n break;\r\n case \"HandOverID\":\r\n this._setFormData(key, e.value);\r\n break;\r\n case \"PeriodItem\":\r\n this._setFormData(key, e.value, () => {\r\n this.loadDateData();\r\n });\r\n break;\r\n case \"DateFrom\":\r\n this._setFormData(key, e.value);\r\n break;\r\n case \"DateTo\":\r\n this._setFormData(key, e.value);\r\n break;\r\n default:\r\n this._setFormData(key, e.value);\r\n break;\r\n }\r\n };\r\n\r\n onClosePreview = () => {\r\n this.loading = {};\r\n this.setState({ showPreview: false, loading: this.loading });\r\n };\r\n\r\n loadedOnPreview = () => {\r\n this._setLoading(\"Preview\", false);\r\n };\r\n\r\n render() {\r\n const disabled = false;\r\n const { classes } = this.props;\r\n const { loading, error, showPreview, iPermission,\r\n dataReports, dataHandOver, dataPeriod, dataForm,\r\n dataCboProjects\r\n } = this.state;\r\n if (!iPermission) return null;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.handleChange(\"Report\", e)}\r\n />\r\n \r\n \r\n {\r\n const { data } = e;\r\n if (!data) return null;\r\n return data.ProjectID + ' - ' + data.ProjectName;\r\n }}\r\n // showCheckBoxMode={\"none\"}\r\n onValueChanged={(e) => this.handleChange(\"ProjectID\", e)}\r\n onInputChanged={(e) => {\r\n this.filterCboProject.strSearch = e.target.value;\r\n this.filterCboProject.skip = 0;\r\n this.loadCboProjects(true);\r\n }}\r\n onLoadMore={(e) => {\r\n this.filterCboProject.skip = e.skip;\r\n this.filterCboProject.limit = e.limit;\r\n this.loadCboProjects();\r\n }}\r\n />\r\n \r\n \r\n {\r\n if(!data) return;\r\n return data?.HandOverID + \" - \" + data?.HandOverName;\r\n }}\r\n itemRender={(e) => {\r\n return e.HandOverID + ' - ' + e.HandOverName;\r\n }}\r\n searchExpr={[\"HandOverName\", \"HandOverID\"]}\r\n valueExpr={'HandOverID'}\r\n margin={\"normal\"}\r\n stylingMode={'underlined'}\r\n disabled={loading.HandOverID || disabled}\r\n value={dataForm.HandOverID}\r\n shrink={true}\r\n placeholder={Config.lang('DHR_Chon_ban_giao')}\r\n label={Config.lang('DHR_Ban_giao')}\r\n onValueChanged={(e) => this.handleChange(\"HandOverID\", e)}\r\n />\r\n \r\n \r\n \r\n \r\n this.handleChange(\"PeriodItem\", e)}\r\n required\r\n error={error && error['PeriodItem']}\r\n />\r\n \r\n \r\n \r\n \r\n {Config.lang(\"DHR_Ngay_cong\")}\r\n \r\n \r\n \r\n this.handleChange('DateFrom', e)}\r\n />\r\n \r\n \r\n this.handleChange('DateTo', e)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n typeButton={\"excel\"}\r\n color={\"primary\"}\r\n className={\"mgr10\"}\r\n variant={\"custom\"}\r\n loading={loading.Export}\r\n disabled={loading.Preview}\r\n style={{ textTransform: 'uppercase' }}\r\n size={\"large\"}\r\n onClick={this.exportExcelTemplate} />\r\n }\r\n loading={loading.Preview}\r\n disabled={loading.Export}\r\n style={{ textTransform: 'uppercase' }}\r\n size={\"large\"}\r\n onClick={() => this.previewExcelTemplate()} />\r\n
\r\n
\r\n \r\n {showPreview && \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {loading.Preview && }\r\n