{"version":3,"sources":["Logo.png","components/Form/CloseButton.module.css","components/Modal/Backdrop/Backdrop.module.css","components/Modal/LoadingIndicator/LoadingIndicator.module.css","components/Modal/Dialog/Dialog.module.css","serviceWorker.ts","utils/toMap.ts","utils/toMultiMap.ts","auth/getTokenFromCookie.ts","config/settings.ts","redux/appSlice.ts","auth/addTokenToCookie.ts","auth/removeTokenFromCookie.ts","redux/middleware/loggerMiddleware.ts","redux/store.ts","redux/middleware/loginMiddleware.ts","redux/middleware/logoutMiddleware.ts","graphql/queries/JOB_NUMBER_INFO_QUERY.ts","components/Modal/LoadingContext/LoadingContext.ts","components/Modal/LoadingIndicator/FullScreenLoadingIndicator.tsx","components/Modal/ErrorIndicator/FullScreenErrorIndicator.tsx","components/SelectDateStart.tsx","components/SelectAmPm/SelectAmPm.tsx","components/Start.tsx","components/DateSelect.tsx","components/TextInput.tsx","components/Form/Button.tsx","graphql/mutations/CREATE_CREW_MUTATION.ts","components/Modal/emitter.ts","components/Modal/ModalContext/ModalContext.tsx","components/Form/CloseButton.tsx","components/Warnings & errors/GeneralWarningModal/GeneralWarningModal.tsx","components/Crew/AddCrew/AddCrew.tsx","graphql/queries/RESOURCE_CODES_QUERY.ts","components/Form/CheckBox.tsx","graphql/mutations/ADD_UPDATE_CREW_RESOURCE_MUTATION.ts","components/Crew/EditCrew/EditCrew.tsx","graphql/queries/CREWS_QUERY.ts","graphql/queries/CREWS_RESOURCES_BY_JOB_NUMBER_QUERY.ts","graphql/mutations/DELETE_CREW_RESOURCES.ts","graphql/mutations/DELETE_CREW.ts","components/Crew/CrewManagement/CrewManagement.tsx","graphql/mutations/SAVE.ts","components/Warnings & errors/SaveSuccesful/SaveSuccesful.tsx","components/Warnings & errors/SaveError/SaveError.tsx","components/Warnings & errors/Nothing to save/NothingToSave.tsx","components/Warnings & errors/QtyError/QtyError.tsx","graphql/mutations/ADD_MASTER_CREW_SCHEDULES.ts","graphql/mutations/ADD_MASTER_CREW_SCHEDULES_PAVING.ts","graphql/queries/ITEMS_IN_PAVING_CALENDAR_QUERY.ts","graphql/mutations/BOOK_YOUR_DATE_ON_PAVING.ts","graphql/mutations/DELETE_BOOKED_DATE_ITEMS.ts","graphql/queries/TRUCKING_DATAS_QUERY.ts","components/Paving/LongRangeCalendar/SelectMultipleDates/SelectMultipleDates.tsx","graphql/queries/JOB_INFO_QUERY.ts","graphql/queries/MASTER_CREW_SCHEDULES_QUERY.ts","graphql/queries/SUPER_INTENDENT_PAVING_CALENDAR_QUERY.ts","components/Paving/LongRangeCalendar/DateInput.tsx","components/Paving/LongRangeCalendar/BookDate/BookDatePaving.tsx","graphql/queries/DATES_PAVING_CALENDAR_JN.ts","graphql/queries/DATES_PAVING_CALENDAR.ts","graphql/queries/PAVING_FOREMANS_QUERY.ts","components/Paving/LongRangeCalendar/LongRangeCalendar.tsx","components/Button.tsx","graphql/mutations/DELETE_EQUIPMENTS.ts","components/Warnings & errors/LockedDaysWhileWorking/LockedDaysWhileWorking.tsx","graphql/mutations/ADD_RESOURCES_ON_MATERIAL_DATAS.ts","graphql/mutations/ADD_RESOURCES_ON_TRUCKING_DATAS.ts","graphql/queries/MATERIAL_DATAS_QUERY.ts","components/AddResources/AddResource/AddResource.tsx","graphql/mutations/EDIT_RESOURCES_ON_MATERIAL_DATAS.ts","graphql/mutations/EDIT_RESOURCES_ON_TRUCKING_DATAS.ts","components/AddResources/EditResource/EditResource.tsx","graphql/mutations/DELETE_RESOURCES_ON_MATERIAL_DATAS.ts","graphql/mutations/DELETE_RESOURCES_ON_TRUCKING_DATAS.ts","graphql/queries/MASTER_CREW_SCHEDULE_AND_PAVING_QUERY.ts","components/AddResources/AddResources.tsx","components/Header.tsx","graphql/queries/CREWS_RESOURCES_QUERY.ts","components/Warnings & errors/ApplyCrew/ApplyCrew.tsx","components/Warnings & errors/DeallocateAllResourcesFromDay/DeallocateAllResourcesFromDay.tsx","components/Crew/ResourceAssignment/ResourceAssignment.tsx","components/Warnings & errors/ApplyTruckingResources/TruckingResourcesNotAllocated.tsx","components/Trucking/EditTruckingResource/EditTruckingResource.tsx","components/Trucking/TruckingManagement/TruckingManagement.tsx","components/Warnings & errors/CancelAssignment/CancelAssignment.tsx","graphql/queries/CANNED_QUERY.ts","components/Paving/SelectMultipleDatesPavingManagement/SelectMultipleDatesPavingManagement.tsx","graphql/queries/LOAD_OUT_TIME_QUERY.ts","components/Paving/PavingManagement.tsx","components/JobSelect.tsx","hooks/useContextMenu.tsx","components/Menu.tsx","components/DayDescription.tsx","components/DayAdditionalResourceComments.tsx","components/Day.tsx","components/LeftHeader.tsx","components/ScheduleTable.tsx","graphql/queries/JOB_INFO_LOCATIONS_QUERY.ts","components/Warnings & errors/Locations/LocationSelect.tsx","graphql/queries/MASTER_CREW_SCHEDULES_PAVING_QUERY.ts","graphql/queries/WEATHER_QUERY.ts","graphql/queries/WEATHER_CONTENT_QUERY.ts","graphql/mutations/ADD_WEATHER.ts","components/Warnings & errors/Locations/AddLocation/AddLocation.tsx","components/Schedule.tsx","components/Nowhere.tsx","components/Modal/Backdrop/Backdrop.tsx","components/Modal/Portal.tsx","hooks/useMounted.tsx","components/Modal/ModalHub/ModalHub.tsx","components/Modal/LoadingIndicator/LoadingIndicator.tsx","components/Modal/Dialog/Dialog.tsx","components/Modal/ErrorIndicator/ErrorIndicator.tsx","components/Modal/LoadingHub/LoadingHub.tsx","components/SuperIntendentPavingModule/DraggableItem/ItemTypes.ts","components/Login/LogOut.tsx","components/Login/Login2.tsx","hooks/useIdToken.ts","components/RefreshToken.tsx","components/SuperIntendentPavingModule/DraggableItem/DraggableItem.tsx","graphql/mutations/SAVE_PAVING_FOREMAN.ts","graphql/mutations/UPDATE_SUPER_INTENDENT_PAVING_CALENDAR.ts","graphql/mutations/DELETE_ITEM_FROM_CALENDAR.ts","graphql/mutations/ADD_EQUIPMENT.ts","components/SuperIntendentPavingModule/EquipmentResources/EquipmentResources.tsx","graphql/mutations/SAVE_JOB_MAP.ts","components/SuperIntendentPavingModule/JobMap/JobMap.tsx","components/SuperIntendentPavingModule/ItemMenu/ItemMenu.tsx","hooks/useTouchableMenu.tsx","components/SuperIntendentPavingModule/ItemFromCalendar/ItemFromCalendar.tsx","graphql/mutations/ADD_SUPER_INTENDENT_PAVING_CALENDAR.ts","graphql/mutations/SAVE_ITEM_FROM_PAVING_MODULE.ts","components/SuperIntendentPavingModule/DraggableItem/DroppableItem.tsx","graphql/queries/SUPER_INTENDENT_PAVING_CALENDAR_DATAS_QUERY.ts","components/SuperIntendentPavingModule/NoWorkForForeman/NoWorkForForeman.tsx","components/SuperIntendentPavingModule/DayMenu/DayMenu.tsx","components/SuperIntendentPavingModule/DayFromCalendar/DayFromCalendar.tsx","components/SuperIntendentPavingModule/Preview.tsx","components/SuperIntendentPavingModule/Calendar.tsx","components/SuperIntendentPavingModule/SuperIndendentPavingModuleHeader/SuperIndendentPavingModuleHeader.tsx","components/Warnings & errors/SleepMode/SleepMode.tsx","components/SuperIntendentPavingModule/SuperIntendentPavingModule.tsx","components/DisabledUser.tsx","components/PavingPlanner/PavingPlanner.tsx","components/SuperIntendentPavingModule/FullDayPreview/SheetHeader/SheetHeader.tsx","graphql/queries/PAVING_SUPERS_QUERY.ts","components/SuperIntendentPavingModule/FullDayPreview/CrewComposition/CrewComposition.tsx","components/SuperIntendentPavingModule/FullDayPreview/SheetRow/Interfaces.ts","components/SuperIntendentPavingModule/FullDayPreview/SheetRow/SheetRow.tsx","components/SuperIntendentPavingModule/FullDayPreview/ExpandableSheet/ExpandableSheet.tsx","graphql/mutations/SAVE_FULL_DAY_PREVIEW.ts","utils/filteredItems.ts","components/FullDayPreviewPage/FullDayPreviewPage.tsx","graphql/mutations/POST_TO_SNS.ts","components/SuperIntendentPavingModule/AuditTrail/AuditTrail.tsx","graphql/queries/EQUIPMENT_MANAGEMENT_DATAS_QUERY.ts","components/SuperIntendentPavingModule/EquipmentDetailsWindow/EquipmentDetailsWindow.tsx","graphql/queries/EQUIPMENT_SUBCATEGORIES.ts","graphql/queries/EQUIPMENT_SUBCATEGORIES_FULL_LIST.ts","graphql/mutations/CHANGE_CONTENT_FROM_FILE.ts","components/SuperIntendentPavingModule/EquipmentListManagement/ItemTypes.ts","components/SuperIntendentPavingModule/EquipmentListManagement/DraggableItem.tsx","graphql/mutations/REFRESH_EQUIPMENT_RESOURCES.ts","components/SuperIntendentPavingModule/EquipmentListManagement/EquipmentListManagement.tsx","components/SuperIntendentPavingModule/NotifyIncompleteItems/NotifyIncompleteItems.tsx","graphql/mutations/ADD_PAVING_FOREMAN.ts","graphql/mutations/DELETE_PAVING_FOREMAN.ts","graphql/queries/JOB_INFOS_BY_DELETED_FOREMAN.ts","components/SuperIntendentPavingModule/TeamManagement/ChangeUser/ChangeUser.tsx","components/SuperIntendentPavingModule/TeamManagement/TeamManagement.tsx","graphql/mutations/ADD_PAVING_SUPER.ts","graphql/mutations/CHANGE_USER_MUTATION.ts","graphql/queries/JOB_INFOS_BY_DISABLED_USER.ts","components/SuperIntendentPavingModule/UsersManagement/DisableUser/DisableUser.tsx","components/SuperIntendentPavingModule/UsersManagement/UsersManagement.tsx","components/SuperIntendentPavingModule/SideBar/SideBar.tsx","graphql/queries/EQUIPMENT_RESOURCES_QUERY.ts","graphql/queries/GET_REMOTE_EQUIPMENT.ts","components/SelectRangeOfDates/SelectRangeOfDates.tsx","components/InitPavingModule/InitPavingModule.tsx","components/FullDayPreviewHistory/Row/Row.tsx","components/FullDayPreviewHistory/FullDayPreviewHistory.tsx","components/Router.tsx","components/App.tsx","graphql/client.ts","index.tsx","components/Modal/ModalHub/ModalHub.module.css","components/Modal/LoadingHub/LoadingHub.module.css"],"names":["module","exports","Boolean","window","location","hostname","match","toMap","collection","keyPredicate","valuePredicate","map","forEach","item","index","toMultiMap","key","Array","isArray","push","getTokenFromCookie","cookie","get","getIdTokenFromCookie","getRefreshTokenFromCookie","settings","production","sendOTPUri","verifyOTPUri","selfUri","graphqlUri","weatherGridPoints","authenticateUri","tokenRefreshUri","redirectUri","logOutUri","preproduction","development","localhost","process","getInitialState","token","id_token","refresh_token","auth","undefined","start","jobNumber","beginDate","days","validJobNumber","validBeginDate","validDays","schedule","locations","lockedDays","resourceCodes","resourceCodesByResourceType","resourceCodesByResourceID","jobInfos","jobInfosByStartDate","jobInfosByLocationAndStartDate","resourceIdIndexesByResourceType","modifiedDayByLocation","modifiedLocation","modifiedLocationInfo","lastDay","copyDay","copyTrucking","copyTruckingJobInfo","copyPaving","copyPavingJobInfo","copyPavingTruckingResources","copyPavingTruckingResourceJobInfo","customCrews","materialDatas","jobNumberInformations","address","coordinateLat","coordinateLong","jobName","superIntendentCode","superIntendentName","trucking","paving","forecast","pavingModule","pavingModuleUser","name","email","groups","isInPavingSupers","isInGeneralPavingSupers","isDisabled","equipmentResources","equipmentSubcategories","equipmentsForCheckbox","equipmentsForInput","truckingDatas","fullDayPreview","pavingForemans","pavingModuleIncompleteItems","remoteEquipmentList","createDay","md","date","format","unix","valueOf","weekDay","day","weekday","labor","equip","truckingResources","pavingResources","description","additionalResourceComments","selectedResources","createLocation","activityDescription","startDate","moment","utc","momentDays","i","clone","add","getMomentDays","parseInt","daysByUnix","getMomentDaysForPavingModule","createPavingModule","numberOfDays","firstDay","firstDayOfCurrentWeek","startOf","isDayBlocked","items","jobNumbersBlocked","noWorkForForeman","jobNumbersRedBordered","equipment","equipmentSubCategory","itemsToRemove","createPavingModuleDay","appSlice","createSlice","initialState","reducers","reset","addToken","state","action","payload","refreshAuthToken","removeToken","login","logout","init","jobInfoLocationsData","pavingCrewData","truckingCrewData","_locations","ji","locationIndex","sort","a","b","resourceID","length","includes","jil","type","resourceType","additionalResourcesComments","ResourceID","rc","ResourceType","resourceIdsByIndex","Object","keys","_","pv","rtsSupport","tr","value","initPavingModule","addDataToPavingModule","superIntendentDatas","d","superIntendentDatasOrderByJNAndShift","filter","shift","removeItemFromPavingModule","equipsWithAnotherJN","eq","e","addIncompleteItemsToPavingModule","incompleteItems","addEquipmentSubcategories","addEquipmentResources","addDayStatusToPavingModule","superIntendentPavingCalendarItems","firstDayAllowedToModify","currentDate","allowToModify","status","addBlockedJobNumbersAndForemansToPavingModule","pavingCalendarItems","superIntendentDatasFilteredByDay","noWorkForForemans","movePavingItemToAnotherDate","newDate","itemsWithSameJN","numberOfItemsOnDate","numberOfItemsOnNewDate","indexDate","itemToMove","foundItemWithSameJN","indexNewDate","itemToBeOverwritten","bookTruckVendor","broker","crewMakeLab","crewMakeOp","extraWork","grinder12ft","grinder4ft","grinder6ft","grinder7ft","jobMap","material","mixDesignApproval","mixSubmital","nrOfTrucks","pavingForeman","pavingSuperIntendent","plant","pmpe","superIntendent","tonnage","tph","typeOfTrucks","uts","splice","indexOf","updateBlockedForemanFromDay","foremans","f","foremanName","lock","foremanIndex","updateJobNumberStatusFromDay","jobNumberIndex","updateJobsNumbersRedBordered","updateDayStatusForPavingModule","changePavingItemForeman","addCustomCrews","crewDescription","addJobNumberInformation","addLocation","changeDoubledShift","stateName","pav","trk","clearDay","itemFromDay","_itemFromDay","isPavingResInJobInfo","job","hasTruckingResWithOperationTypePaving","operationType","truckingJobInfoResource","resourceQTY","qty","reduce","previousValue","currentValue","clearDayForLockedDays","pasteDay","trkResFromLongRange","updated","pavResFromLongRange","dayResourcesBeforePaste","truckingResourcesWithoutOpTypePaving","equipJobInfosWithoutTrk","equipJobInfosTrk","laborJobInfosWithoutPav","truckingResourcesCurrentDayWithOpTypePav","pavingJobInfoCurrentDay","trkJobInfoCurrentDay","l","qtySumFromTruckingResourcesFromDay","pavingTrkResources","truckingJobInfos","projectManager","foreman","searchGSI_JobNumber","areaManager","resourceName","_pavingRes","addedDate","timeStamp","nonPavingTrkResources","jobInfosLabor","pavingTruckingJobInfos","jobInfosEquip","undoDay","copyResourcesWithoutPav","_laborWithoutPav","_trkResourcesWithoutPav","qtyTrkResourcesWithoutPav","_trkNonPav","_allResources","_selectedResources","r","_day","JobChange","indexPos","ResourceDescription","RemoveJob","rt","values","JobQTY","addPavingFromPavingManagement","jobInfoResources","jobInfoToUpdate","_resources","resourcesForTrk","resourcesForPav","resourcesForACP","j","_itemToUpdate","addPavingFromPavingCalendarResources","deleteResourcesFromJIAndTrucking","trToDelete","path","resourcesWithoutPaving","t","addResourcesToDay","resources","resource","resourceDescription","QTYNeeded","addDescriptionToDay","locationInfoChange","locationName","addAdditionalResourceCommentsToDay","addTruckingResourcesToDay","addTruckingResourcesToDayFromPavingManagement","nonPavingRes","qtySum","removeTruckingResourcesToDay","removeNonPavingTruckingResourcesToDay","pavTrkRes","p","removePavingTruckingResourcesToDay","nonPavTrkRes","nonTrkRes","addPavingResourcesToDay","updateShiftToPavingResources","removePavingResourcesToDay","addTruckingQTYFromPaving","getWeatherData","locationsKey","dayKey","startTime","addPavingModuleUser","isInGeneraPavingSupers","addEquipmentToPavingModule","equipmentManagementResources","equips","eqSubcategoryDescription","equipmentSubcategoryData","eqs","updateEquipmentToPavingModule","dates","equipmentManagementResourcesDiffJN","eqID","eqName","eqSubcategoryID","locIndex","equipmentSubCategoryResourcesDiffJN","trim","updateEquipmentResourcesList","_equipmentResourcesFromDateWithSameJobNumber","_equipmentResourcesSubcategoryFromDateWithSameJobNumber","_equipmentResourcesFromDateWithDifferentJobNumber","_equipmentResourcesSubcategoryFromDateWithDifferentJobNumber","_equipmentResourcesNewDateWithDifferentJobNumber","_equipmentResourcesSubcategoryNewDateWithDifferentJobNumber","_equipmentResourcesNewDateWithSameJobNumber","_equipmentResourcesSubcategoryNewDateWithSameJobNumber","concatEquipments","concatEquipmentsSubcategory","numberOfItemsOnDateSameJN","numberOfItemsOnNewDateSameJN","equipsSubcategory","v","findIndex","self","saveChangesToItemFromFullDayPreview","extrawork","oilTruk","locatinIndex","loadOutTime","updateJobInfoTable","updateMasterCrewSchedulePavingTable","updateMasterCrewScheduleTable","pavingSuper","resourcesOp","resourcesLab","updateItemsFromPavingModule","updateJobMapToPavingModule","addTruckingAndMaterialDatas","updateTruckingAndMaterialDatas","_materialDataResources","_truckingDataResources","obj","updateForemanForItemsFromCalendar","foremanNameForUpdate","foremanToDelete","addRemoteEquipmentList","list","cleanModifiedDayByLocation","setLockedDays","myFetch","url","options","Accept","to","fetch","error","response","json","errorJson","responseJson","app","reducer","actions","addIdTokenToCookie","set","removeTokenFromCookie","remove","logger","createLogger","collapsed","store","configureStore","middleware","thunk","dispatch","getState","next","EmitterEvent","JOB_NUMBER_INFO_QUERY","gql","emitter","EventEmitter","emitLoadingEventFactory","id","origin","event","LOADING","emit","emitCompletedEventFactory","COMPLETED","emitErrorEventFactory","arg","ERROR","emitDismissErrorEventFactory","DISMISS_ERROR","loadingContextValue","getEmitters","v4","emitLoadingEvent","emitCompletedEvent","emitErrorEvent","emitDismissErrorEvent","loadingContext","React","createContext","FullScreenLoadingIndicator","context","emitters","this","props","PureComponent","contextType","ActionTypes","FullScreenErrorIndicator","useContext","useEffect","onDismiss","onRetry","message","mainReducer","SET_PICKER_DATES","_dates","toDate","getDateFromSelectedDates","_date","SET_PROPS_DATES","SET_VISIBILITY","visible","previousAction","SelectDateStart","useReducer","fp","useRef","elem","currentDates","current","setDate","destroy","onWheel","document","removeEventListener","close","onDayCreate","dObj","dStr","dayElem","innerHTML","ref","onClick","flatpickr","onChange","selectedDates","dateStr","instance","onPickerChange","onReady","selectedDate","open","onOpen","onClose","disableMobile","showMonths","dateFormat","mode","minDate","maxDate","addEventListener","className","SelectAmPm","history","useHistory","useSelector","useDispatch","useState","cognito_groups","isPavingSuper","isGeneral","setState","decoded_token","jwt_decode","userId","_name","split","toUpperCase","slice","err","disabled","reload","isNumber","num","isNaN","isValidDate","isValid","Start","useImmer","endDate","validEndDate","setSelectedDates","localState","rv","JSON","parse","localStorage","getItem","getLocalState","useLazyQuery","fetchPolicy","getJobNumberInfo","jobNumberInfoLoading","loading","jobNumberInfoError","jobNumberInfoData","data","jobNumberInformation","setItem","stringify","isValidForm","onDateSelected","_firstDay","_lastDay","daysLength","Math","abs","duration","diff","asDays","draft","round","style","backgroundImage","src","alt","target","inputValue","fontSize","fontFamily","cursor","display","paddingTop","href","rel","pathname","from","flex","variables","DateSelect","setFirstDay","setLastDay","_days","readOnly","TextInput","placeholder","onBlur","maxLength","min","Button","title","children","EmitterEvents","CREATE_CREW_MUTATION","isElementModal","modal","isElement","element","component","isComponentModal","openModalCreator","MODAL","openModalHandler","closeModalHandler","CLOSE_MODAL","getModalHandlersCreator","openModal","closeModal","openTopModalCreator","TOP_MODAL","openTopModalHandler","closeTopModalHandler","CLOSE_TOP_MODAL","getTopModalHandlersCreator","openTopModal","closeTopModal","closeAllModals","CLOSE_ALL_MODALS","ModalContext","CloseButton","css","button","GeneralWarningModal","yesNoButtons","onConfirm","onCancel","AddCrew","crewCode","setCrewCode","setCrewDescription","buttonDisabled","setButtonDisabled","useMutation","onCompleted","refetch","createCrew","customCrewsByJobNumber","isCrewDescriptionAlreadySavedInDB","crews","crew","onpopstate","onSubmit","where","code","c","RESOURCE_CODES_QUERY","CheckBox","checked","ADD_UPDATE_CREW_RESOURCE_MUTATION","EditCrew","crewResourcesByResourceId","crewResourcesByResourceType","useQuery","addCrewResources","crewResoures","crewResourcesByRecourceId","cr","ResourceCode","dateAdded","JobNumber","showCancelAssignmentModal","crewName","onChangeQty","toString","onCheckboxChange","_resourcesToUpdate","crbr","_resourcesToDelete","_resourcesToAdd","deletedResources","updatedResources","addedResources","CREWS_QUERY","CREWS_RESOURCES_BY_JOB_NUMBER_QUERY","DELETE_CREW_RESOURCES_MUTATION","ButtonTypes","DELETE_CREW_MUTATION","CrewManagement","currentCrew","setCurrentCrew","currentCrewName","setCurrentCrewName","checkBoxes","setCheckBoxes","buttonType","setButtonType","skip","crewR","refCrewR","deleteCrewResources","deleteCrew","loadingDeletingCrew","body","overflow","removeAttribute","currentCrewResources","crewResourcesByJobNumber","sortedCurrentCrewResources","n","DELETE_CREW","DELETE_RESOURCES","checkBoxValue","_checkboxes","onCheckBoxesChange","Date","now","resourceIDs","onDeleteCrew","SAVE","SaveSuccesful","SaveError","NothingToSave","QtyError","ADD_MASTER_CREW_SCHEDULES","ADD_MASTER_CREW_SCHEDULES_PAVING","ITEMS_IN_PAVING_CALENDAR_QUERY","BOOK_YOUR_DATE_ON_PAVING","DELETE_BOOKED_DATE_ITEMS","TRUCKING_DATAS_QUERY","SelectMultipleDates","_state","lockedItems3WeekRange","dateObj","redDates","disable","JOB_INFO_QUERY","MASTER_CREW_SCHEDULES_QUERY","SUPER_INTENDENT_PAVING_CALENDAR_QUERY","getInitialBookState","BookDatePavingComponent","bookData","setBookData","checkedItem","setCheckedItem","addButtonStatus","setAddButtonStatus","isLoading","setIsLoading","locationState","locationsArray","locationObj","getJobInfos","loadingJobInfo","errorJobInfo","datesJobInfo","refetchJobInfo","getTrucking","loadingTrucking","errorTrucking","datesTrucking","refetchTrucking","lockedDaysData","refetchLockedDays","bookYourDateOnPaving","deleteBookedDateItems","loadingDelete","materials","manager","operationTypeForSelectedMaterial","_datesSorted","checkForLockedDays","_lockedDays","ld","getDates","useCallback","pavingCalendar","_brokerData","td","_trukData","_plantData","_materialData","m","onPlantChange","_eValue","onTonnageChange","onKeyPressTonnage","test","preventDefault","onBrokerChange","onTypeOfTruckingChange","onNumberOfTrucksChange","onKeyPressNumberOfTrucks","isChecked","_checkedItem","onMaterialChange","onShiftChange","onDatesSelected","onDelete","valuesFromCheckedItem","constant","uID","onCloseModal","refetchItemInCalendar","onCloseWithoutSaving","_datesWithJobInfoPav","jobInfo","_datesWithJobInfoPavNoDuplicated","_datesWithJobInfoTrk","_datesWithJobInfoTrkNoDuplicated","_datesWithTruckingResourcesOpTypePaving","masterCrewSchedules","_datesWithTrkOpPavingNoDuplicated","_datesWithTruckingRes","_datesWhereWeNeedToAddPavingManagement","_datesWhereWeNeedToAddTruckingManagementJI","_datesWhereWeNeedToAddTruckingResource","_datesWhereNeedToUpdateQtyJi","changeFormatDate","originalDate","each","dataToCheck","savePaving","pavingData","truckingData","tableauGSI_Tableau","loadSite","notes","addedFromPaving","oilTruck","jobNumber_Date","jobInfosToUpdate","_datesWhereNeedToUpdateQtyJiTransformed","_filteredJI","itemsToUpdateJI","_qty","addPavingResources","save","putJobInfo","addTruckingResources","confirmed","allElementsPassed","itemsInPavingCalendar","objeto","indice","propiedad","conflictsDays","miObjeto","Promise","resolve","onDeletePaving","modalResponse","arrayItem","superIntendentPavingCalendar","_lockedItems3WeekRange","aria-hidden","outline","data-default","onKeyPress","s","bd","pd","limitItemsNumber","nrOfForemans","groupedDates","gd","getDatesWithMoreThanThreeJN","currentDay","isSaveButtonDisabled","havePaving","onDeleteClick","SET_PICKER_DATE","SET_PROPS_DATE","DateInput","create","lockedDays3WeekRange","inline","prevArrow","nextArrow","DATES_PAVING_CALENDAR_QUERY_JN","DATES_PAVING_CALENDAR_QUERY","PAVING_FOREMANS_QUERY","memo","currentMonth","lastMonth","getDatesInPavingCalendar","datesInPavingCalendarData","dataForeman","loadingForeman","errorForeman","datesInPavingCalendar","loadingDatesInPavingCalendar","firstDayPM","lastDayPM","_startDate","_endDate","onNext","_startMonth","_endMonth","onPrev","datesJNInPavingCalendar","pavCalendar","getDatesFrom3WeeksLookWithPaving","_firstDatePM","_lastDatePM","disableArrows","pressedArrow","firstMonthFromState","lastMonthFromState","setShowBookDateComponent","showTooltip","setShowTooltip","onMouseLeave","onMouseOver","tooltip","position","padding","DELETE_EQUIPMENTS","LockedDaysWhileWorking","width","height","ADD_RESOURCES_ON_MATERIAL_DATAS","ADD_RESOURCES_ON_TRUCKING_DATAS","MATERIAL_DATAS_QUERY","AddResource","isButtonDisabled","setIsButtonDisabled","types","onKeyChange","onValueChange","onAddingResource","onSave","EDIT_RESOURCES_ON_MATERIAL_DATAS","EDIT_RESOURCES_ON_TRUCKING_DATAS","EditResource","editResourceOnMaterialDatas","editResourceOnTruckingDatas","onSaveEdit","onEditResource","usedResources","DELETE_RESOURCES_ON_MATERIAL_DATAS","DELETE_RESOURCES_ON_TRUCKING_DATAS","MASTER_CREW_SCHEDULE_AND_PAVING_QUERY","AddResources","isGeneralPavingSuper","currentMenuOption","usedBrokers","usedMaterials","usedPlants","usedTruckTypes","allUsedResources","loadingMaterial","refetchMaterial","objects","addResourcesOnMaterialDatas","loadingAddResourcesOnMaterial","addResourcesOnTruckingDatas","loadingAddResourcesOnTrucking","deleteResourcesOnMaterialDatas","loadingDeleteResourcesOnMaterial","deleteResourcesOnTruckingDatas","loadingDeleteResourcesOnTrucking","masterCrewScheduleAndPaving","flat","_res","toLowerCase","toLocaleLowerCase","_menuOptions","onAddRes","_materialDatas","_truckingDatas","onEditRes","res","oldResource","onDeleteResource","checkedForDelete","_materialDataAfterDelete","_matDatas","_truckingDataAfterDelete","_trkDatas","disableCheckbox","mo","onEditValue","onAddResource","onDeleteResourceConfirmation","addMasterCrewSchedules","addMasterCrewSchedulesPaving","deleteEquipment","modifiedLocationDays","modifiedDaysByLocationInfo","loadedLockedDays","refSaveButton","client","useApolloClient","showErrorModal","showSuccessfulModal","showNothingToSaveModal","showMissingQTYModal","showLockedDaysWhileWorkingModal","modifiedDayByLocationPaving","modifiedDayByLocationTrucking","modifiedDayForDeleteEquip","jobToSubmit","count","daysLocked","_modifiedLocationDays","query","Number","responseLocked","ot","jobInfoLabor","jobInfoEquipment","laborKey","equipKey","intKey","deleteJobInfo","loc","deleteTruckingResources","addMasterCrewSchedulesError","addMasterCrewSchedulesResponse","deletePavingResources","addMasterCrewSchedulesPavingError","addMasterCrewSchedulesPavingResponse","deleteEquipError","deleteEquipResponse","setAttribute","hasPavingUnsaved","modifiedDaysInfo","logo","CREW_RESOURCES_QUERY","ApplyCrew","assignDate","DeallocateAllResourcesFromDay","ResourceAssignment","laborResources","setLaborResources","setEquipmentResources","crewResources","_laborResources","_equipmentResources","openDeallocateAllResourcesFromDayModal","isDayCleared","onApplyResources","onPressApplyButton","openApplyCrewModal","TruckingResourcesNotAllocated","EditTruckingResource","disableButton","setDisableButton","hasSameShift","setSameShift","pavingResurcesLocation1ForPaving","pavingResurcesLocation2ForPaving","truckingResource","materialData","onTypeChange","onLoadSiteChange","onQtyChange","onNotesChange","shiftPavLocation1","shiftPavLocation2","checkIfResourcesWasEdited","brokerData","truckData","fromPavingManagement","loadSiteData","lsd","cols","rows","truckingResourceIndex","TruckingManagement","addButtonDisabled","truckingStateReset","setTruckingStateReset","initial","truckingState","setTruckingState","checkedResources","setCheckedResources","truckingResourcesReduxState","pavinvResourcesReduxState","pavingResurcesLocationForPaving","canAddPavingResources","_loadSiteData","_checkedResources","onApply","truckingRes","pavingRes","replace","onEditTrResource","lr","canDelete","onOpenDelete","onOpenApply","resourceToEdit","resourceToEditIndex","CancelAssignment","CANNED_QUERY","SelectMultipleDatesPavingManagement","disabledDates","setDisabledDates","generatedDays","_disDates","enable","LOAD_OUT_TIME_QUERY","cannedCode","grinderCheckBox","rtsSupportCheckBox","pavingState","setPavingState","loadingSave","setLoadingSave","lockedDaysLoading","loadOutTimeData","canned","pavingResourcesRedux","pavings","pavingResurcesLocation3ForPaving","pavingResurcesLocation4ForPaving","masterCrewRecourceId","resourcesByResourceType","resourcesByResourceCode","resourcesCodes","isGrinderUsed","loadOutTimeValue","shiftLocation1","shiftLocation2","shiftLocation3","shiftLocation4","onMixSubmitalChange","onMixDesignApprovalChange","onOilTruckChange","onRtsSupportCheckBoxChange","onUtsCheckBoxChange","onGrinderCheckBoxChange","onExtraWorkChange","onTPHChange","onRtsSupportChange","onBookTruckVendorChange","onGrinder4ftChange","onGrinder6ftChange","onGrinder7ftChange","onGrinder12ftChange","onCannedChange","cannedResources","_cannedResources","resourceQty","clearTheDay","setTimeout","pavingResourcesForAllocation","pavingResourcesGrinderForAllocation","pr","_trkResources","trkResourcesQty","sd","checkForLocked","onTimeChange","setShowTruckingAssigment","indexPosition","hasTrkWithPav","verifyPavResourcesOnTrucking","_generatedDays","border","loadOutTimeValues","time","labelStyle","whiteSpace","margin","textOverflow","MemoJobSelect","input","equipResources","_daysGenerated","at","updatedPav","updatedTrk","resourceIdIndexes","onPreventChangeTrk","eventValue","onResourceChange","onPreventChangePav","focus","qtyLenght","showResourceAssigmentModal","_lockedDaysFromRefetch","flexDirection","flexWrap","_eventValue","onCrewChange","color","setShowPavingAssigment","borderColor","EmptyJobSelectElement","onReloadLockedDays","isActivated","setIsActivated","activate","useContextMenu","outerRef","xPos","setXPos","yPos","setYPos","menu","showMenu","handleContextMenu","contains","pageX","pageY","handleClick","Menu","stateCopyDay","stateCopyPav","stateCopyTrk","stateCopyTrucking","stateCopyPaving","stateCopyTruckingLongRange","stateCopyPavingLongRange","pavingResourcesLoc1","pavingResourcesLoc2","pavingResourcesLoc3","pavingResourcesLoc4","_shift","onClear","currentDayPavingResources","onPaste","onUndo","onCopy","onCopyPaving","top","left","laborResourcesWithoutPav","_equipResources","hasOnlyPavingResources","setDescription","dayDescription","DayAdditionalResourceComments","additionalRC","setAdditionalRC","getURLDay","content","shortForecast","sf","weatherContentDataDay","con","Key","photo","URL","getURLNight","weatherContentDataNight","temperatures","isDayLocked","lockedDaysFromRefetch","setLockedDaysFromRefetch","reloadLockedDays","backgroundColor","weatherContent","weatherValues","temperature","locationActivityDescription","PMPE","justifyContent","overflowY","JOB_INFO_LOCATIONS_QUERY","equalityFn","leftArray","rightArray","k","getElementById","scrollIntoView","MASTER_CREW_SCHEDULES_PAVING_QUERY","WEATHER_QUERY","WEATHER_CONTENT_QUERY","ADD_WEATHER","AddLocation","setName","getEndDate","didInit","setDidInit","isDirty","isDirtyLocationInfo","weatherData","weatherDataLoading","weatherContentsData","weatherContentsDataLoading","jobInfoLocationsLoading","jobInfoLocationsError","jobInfoLoading","jobInfoError","jobInfoData","resourceCodesLoading","resourceCodesError","resourceCodesData","customCrewsLoading","customCrewsError","customCrewsData","pavingCrewLoading","pavingCrewError","truckingCrewLoading","truckingCrewError","lockedDaysError","materialLoading","materialErrors","addWeather","lat","long","callWeatherMutation","jobInfoLocations","masterCrewSchedulesPaving","forecastURL","responseForecast","periods","handler","returnValue","when","marginLeft","marginBottom","Nowhere","textAlign","fontWeight","Backdrop","container","modalRootRef","isMounted","setIsMounted","useMounted","querySelector","selector","console","log","ReactDOM","createPortal","ModalHub","modals","topModals","onModal","forceUpdate","onTopModal","_modal","onCloseTopModal","onCloseAllModals","_onCloseModal","elementProps","_onCloseTopModal","on","off","center","backdrop","cloneElement","createElement","LoadingIndicator","performance","Dialog","getStrippedMessage","ErrorIndicator","events","Error","isValidElement","onDismissAllErrors","LoadingHub","setEvents","onLoading","onError","dismissAllErrors","onDismissError","loadingEvents","errorEvents","getEventsByType","isLoadingIndicatorVisible","isErrorIndicatorVisible","ItemTypes","LogOut","Login2","isLogOut","setIsLogOut","hasId","result","qs","search","ignoreQueryPrefix","parsedUrl","entries","axios","post","getToken","useIdToken","RefreshToken","refreshToken","getAlerts","interval","setInterval","clearInterval","DraggableItem","unixDate","isDraggable","nrOfItemsWithSameJobNumber","CALENDAR_ITEM","useDrag","canDrag","monitor","end","dropResult","didDrop","dragSource","collect","isDragging","drag","preview","getEmptyImage","captureDraggingState","SAVE_PAVING_FOREMAN","UPDATE_SUPER_INTENDENT_PAVING_CALENDAR","DELETE_ITEM_FROM_CALENDAR","ADD_EQUIPMENT","EquipmentResources","equipResourcesByEqId","equipResourcesFilteredByJobNumber","equipSubcategoryResourcesFilteredByJobNumber","equipResourcesBySubcategory","equipResourcesBySubcategoryForCheck","equipResourcesBySubcategoryForInput","isInputEmpty","isSingleUpdate","addEquipment","equipResourcesFromRedux","equipSubcategoryResourcesFromRedux","isDayDisabled","isJobDisabled","eqIDsRed","setEqIDsRed","currentSelectedEqIDs","setCurrentSelectedEqIDs","onInit","cameFrom","er","equipSubcategoryResourcesById","resInput","resourcesForCheckBox","currentItem","resourcesForInput","uniqueArray","subcategory","_equipResourcesByEqId","erd","_erd","_currentIDsList","equipAddManagement","equipmentResourcesToAdd","data-key","_eqIDsRed","onCheckBoxChange","onInputChange","SAVE_JOB_MAP","JobMap","saveJobMap","link","setLink","setShowMenu","onContextMenu","navigator","clipboard","readText","then","text","catch","saveJM","ItemMenu","foremansBlocked","deleteItemFromCalendar","isItemLocked","stateItemLock","setStateItemLock","updateSuperIntendentPavingCalendar","updatedJobNumbersBlocked","onLock","onUnlock","onClickJobMap","openDeleteModal","deleteSchedule","hasShift","isBorderRed","onClickEquipList","onClickDeleteSchedule","useTouchableMenu","onLongPress","stopPropagation","nativeEvent","TouchableMenu","TouchableHighlight","View","ItemFromCalendar","setPavingForeman","savePavForeman","isJobLocked","itemsFromDayRedux","onPavingForemanChange","_pavingForemans","username","pavForemans","usernameSubstrings","_usernameInitials","u","substring","usernameInitials","opacity","jobsToLock","ADD_SUPER_INTENDENT_PAVING_CALENDAR","SAVE_ITEM_FROM_PAVING_MODULE","DroppableItem","itemsFromDay","canDropElement","CALENDAR_DAY","useDrop","accept","canDrop","dragObject","drop","dropTarget","isOver","SUPER_INTENDENT_PAVING_CALENDAR_DATAS_QUERY","NoWorkForForeman","usedForemans","setUsedForemans","_blockedForemans","itemsFromCurrentDay","sortedPavingForemans","assign","foremansUsed","_foremanNames","pf","onCheckForeman","DayMenu","onNoWorkForemanForDay","DayFromCalendar","isScheduleLocked","calendarDay","pavingForemansNameWithMoreThan2Resources","jobNumbersToLock","saveItemFromPavingModule","addSuperIntendentPavingCalendar","refStatusDay","jobsLocked","equipmentSubcategoriesInput","blockedForemans","groupedItems","groupedItemsByJobNumber","filteredItemsByForeman","jobs","totalTonnage","onDropEvent","actualDate","_locationIndex","_itemToBeOverwrite","itemNewDay","numberOfItemsNewDaySameJN","wasAddedAnItem","pavingSuperName","itemsFromNewDayAdded","superIntendentPavingCalendarDatas","correctItems","itemsLocationIndexes","saveItemToAnotherDate","updateForemans","_itemToOverWrite","newLocationIndex","nrOfItemsOnSameJobNumber","equipmentSubcategoriesList","foremanNameToBeRemoved","layerStyles","pointerEvents","zIndex","getItemStyles","initialOffset","currentOffset","offset","x","y","transform","WebkitTransform","useDragLayer","itemType","getItemType","getInitialSourceClientOffset","getSourceClientOffset","clientOffset","getClientOffset","noPreview","borderRadius","Calendar","calendarData","setCalendarData","dataByDate","pk","SuperIndendentPavingModuleHeader","SleepMode","SuperIntendentPavingModule","call","setCall","queryCounter","setQueryCounter","sleepMode","setSleepMode","daysFromState","errorPolicy","DisabledUser","PavingPlanner","SheetHeader","PAVING_SUPERS_QUERY","fullDayPreviewItem","otherResources","booleanType","SheetRow","truckCo","lockedJobs","brokersData","plantData","_pavingSupers","pavingSupers","isDayInThePast","alignItems","borderTop","borderBottom","isSupersSelectDisabled","pavSuper","pavForeman","onMixSubmital","lt","option","onRtsSupport","onBookTruckVendor","truck","onNrOfTrucksChange","itemState","ExpandableSheet","expanded","setExpanded","SAVE_FULL_DAY_PREVIEW","filteredItems","mappedItems","dayItemsLength","initDayItemsLength","itemsLength","itemsFromForeman","itemsUnassigned","FullDayPreviewPage","fullDayPreviewItemsToUpdate","pavingModuleUserName","daysPavingModule","useStore","_daysPavingModule","subtract","_currentDay","pavingForemansList","saveFullDayPreview","filteredPavForemans","isStateReadyToSave","_fullDayPreviewItemsToUpdate","fd","resOp","resLab","onScrollLeft","sideScroll","onScrollRight","onScrollUp","onScrollDown","direction","speed","distance","step","scrollAmount","slideTimer","scrollLeft","scrollTop","onMouseEnter","scroll","pavForemanName","data-day","superIntendentPavingCalendarData","POST_TO_SNS","AuditTrail","pavingItems","setPavingItems","_newPavAdded","pavingTimeStamp","_dayNewPavingAdded","_nightNewPavingAdded","_newPavingAdded","pavingItemsWithAddedDate","pavingItemsWithoutAddedDate","EQUIPMENT_MANAGEMENT_DATAS_QUERY","equipmentNameList","equipmentItems","equipmentSubcategoryName","EquipmentDetailsWindow","setEquipmentNameList","setSubcategoriesList","_subcategories","_equipmentNameList","_equipmentSubcategoryList","_equipmentNameListByCategoryId","equipments","_equipmentResourcesFiltered","currentSubcategory","sc","_equipmentSubcategories","_equipmentSubcategoriesFiltered","equipmentManagementDatas","eqSubName","data-name","subcategoryName","EQUIPMENT_SUBCATEGORIES_QUERY","EQUIPMENT_SUBCATEGORIES_FULL_LIST","ItemTypesEquip","CHANGE_CONTENT_FROM_FILE","hasSubcategoryDescription","moveCard","subcategoryDescription","subcategoryId","equipItem","hover","dragIndex","hoverIndex","hoverBoundingRect","getBoundingClientRect","hoverMiddleY","bottom","hoverClientY","REFRESH_EQUIPMENT_RESOURCES","EquipmentListManagement","newSubcategoryId","setNewSubcategoryId","remoteEquipById","setRemoteEquipById","equipmentFullList","equipmentFullListLoading","equipmentFullListError","changeContentFromFile","loadingChangeContentFromFile","refreshEquipmentResources","loadingRefreshEquipmentResources","remoteEquip","equipList","equipmentSubcategoriesFullList","assignByIndividual","subCategoryDescription","subCategoryId","isRed","subCategoryIdsFromState","itemDescription","onDeleteChange","dragCard","update","$splice","contentForFullList","join","contentForCheckBoxList","contentForInputList","fileName","onRefreshEquip","EQUIPMENT","onAssignByIndividualChange","onDeleteCheck","onRefreshEquipCheck","trimmedValue","AddNewSubcategory","NotifyIncompleteItems","ADD_PAVING_FOREMAN","DELETE_PAVING_FOREMAN","JOB_INFOS_BY_DELETED_FOREMAN","ChangeUser","deletePavingForeman","jobInfosItemsToUpdate","jobInfosByDeletedUser","userToDelete","userIDToDelete","au","onChangeUserApply","TeamManagement","buttonStatus","setButtonStatus","addPavingForeman","pavingForemanNames","onSaveUser","responseJobInfos","jobInfosByDeletedForeman","formatInput","ADD_PAVING_SUPER","CHANGE_USER_MUTATION","JOB_INFOS_BY_DISABLED_USER","DisableUser","selectedUser","setUser","changeUser","onChangeUser","disabledUser","userNameWeWantToDisable","disabledUserEmail","userEmailWeWantToDisable","updateUser","jobInfosByDisabledUser","activeUsers","UsersManagement","user","mailFormat","addPavingSuper","pavingSuperEmail","ps","onAddUser","errorAddPavingSuper","onDisableUser","currentUser","currentUserEmail","disabledUserName","onEnableUser","onChangeEmail","SideBar","xPosition","setXPosition","listVisibillity","setListVisibillity","isCurrentUserGeneral","postToSns","onPushPavingScheduleClick","respose","onCalendarModule","onDayPreviewModule","onEquipmentListManagementClick","openManageResources","EQUIPMENT_RESOURCES_QUERY","GET_REMOTE_EQUIPMENT","InitPavingModule","dataEquip","loadingEquip","errorEquip","equipmentManagement","loadingEquipmentManagement","errorEquipmentManagement","loadingSubcategories","errorSubcategories","remoteEquipment","remoteEquipmentLoading","remoteEquipmentError","getRemoteEquipment","SelectRangeOfDates","Row","FullDayPreviewHistory","setDates","nrOfDays","setNrOfDays","setUnixDate","onPickerDatesChange","browserHistory","createBrowserHistory","Router","exact","Schedule","httpLink","HttpLink","uri","middlewareLink","setContext","idToken","headers","Authorization","Cognito","errorLink","networkError","graphQLErrors","extensions","cache","InMemoryCache","ApolloClient","ApolloLink","connectToDevTools","createClient","modalContextValue","getModalHandlers","getTopModalHandlers","App","StrictMode","Provider","render","backend","HTML5Backend","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.ab078aea.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/Logo.4de2e1fd.png\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"CloseButton_button__yjqlm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Backdrop_container__2npm6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"performance\":\"LoadingIndicator_performance__1JANN\",\"rotation\":\"LoadingIndicator_rotation__1dy3l\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Dialog_container__18ewh\"};","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\ntype Config = {\r\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\r\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\r\n};\r\n\r\nexport function register(config?: Config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(\r\n process.env.PUBLIC_URL,\r\n window.location.href\r\n );\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string, config?: Config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' }\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","/**\r\n * Converts an array to a key-value pair map\r\n * @param collection an array of type T\r\n * @param keyPredicate a function that returns the key of the map entry\r\n * @returns { [key: string]: T } object\r\n * @example\r\n * toMap([12, 14, 23, 31], item => item.toString()); // -> { \"12\": 12, \"14\": 14, \"23\": 23, \"31\": 31 }\r\n * toMap([{id: 24, other: 55}, {id: 14, other: 45}], item => item.id.toString()); // -> { \"14\": { id: 14, other: 45 }, \"24\": { id: 24, other: 55 } }\r\n */\r\nexport function toMap(collection: T[], keyPredicate: (item: T, index: number) => number): { [key: number]: T }\r\nexport function toMap(collection: T[], keyPredicate: (item: T, index: number) => string): { [key: string]: T }\r\n/**\r\n * Converts an array to a key-value pair map\r\n * @param collection an array of type T\r\n * @param keyPredicate a function that returns the key of the map entry\r\n * @param valuePredicate an optional function that returns the value of the map entry\r\n * @returns { [key: string]: K } object\r\n * @example\r\n * toMap([12, 14, 23, 31], item => item.toString(), item => item); // -> { \"12\": 12, \"14\": 14, \"23\": 23, \"31\": 31 }\r\n * toMap([12, 14, 23, 31], item => item.toString(), () => true); // -> { \"12\": true, \"14\": true, \"23\": true, \"31\": true }\r\n * toMap([{id: 24, other: 55}, {id: 14, other: 45}], item => item.id.toString(), () => true); // -> { \"14\": true, \"24\": true }\r\n */\r\nexport function toMap(collection: T[], keyPredicate: (item: T, index: number) => number, valuePredicate: (item: T, index: number) => K): { [key: number]: K }\r\nexport function toMap(collection: T[], keyPredicate: (item: T, index: number) => string, valuePredicate: (item: T, index: number) => K): { [key: string]: K }\r\nexport function toMap(collection: T[], keyPredicate: (item: T, index: number) => string | number, valuePredicate?: (item: T, index: number) => K): { [key: string]: T | K;[key: number]: T | K } {\r\n const map: { [key: string]: T | K } = {};\r\n collection.forEach((item, index) => {\r\n map[keyPredicate(item, index)] = typeof valuePredicate === \"function\" ? valuePredicate(item, index) : item;\r\n });\r\n return map;\r\n}\r\n","/**\r\n * Converts an array to a key-value pair map\r\n * @param collection an array of type T\r\n * @param keyPredicate a function that returns the key of the map entry\r\n * @returns { [key: string]: T } object\r\n */\r\nexport function toMultiMap(collection: T[], keyPredicate: (item: T, index: number) => number): { [key: number]: [T] }\r\nexport function toMultiMap(collection: T[], keyPredicate: (item: T, index: number) => string): { [key: string]: [T] }\r\n/**\r\n * Converts an array to a key-value pair map\r\n * @param collection an array of type T\r\n * @param keyPredicate a function that returns the key of the map entry\r\n * @param valuePredicate an optional function that returns the value of the map entry\r\n * @returns { [key: string]: K } object\r\n */\r\nexport function toMultiMap(collection: T[], keyPredicate: (item: T, index: number) => number, valuePredicate: (item: T, index: number) => K): { [key: number]: [K] }\r\nexport function toMultiMap(collection: T[], keyPredicate: (item: T, index: number) => string, valuePredicate: (item: T, index: number) => K): { [key: string]: [K] }\r\nexport function toMultiMap(collection: T[], keyPredicate: (item: T, index: number) => string | number, valuePredicate?: (item: T, index: number) => K): { [key: string]: [T | K]; [key: number]: [T | K] } {\r\n\r\n const map: { [key: string]: [T | K] } = {};\r\n\r\n collection.forEach((item, index) => {\r\n const key = keyPredicate(item, index);\r\n if(!Array.isArray(map[key])) {\r\n map[keyPredicate(item, index)] = [] as any;\r\n }\r\n map[key].push(typeof valuePredicate === \"function\" ? valuePredicate(item, index) : item);\r\n });\r\n \r\n return map;\r\n}\r\n","import cookie from 'js-cookie';\r\n\r\nexport const getTokenFromCookie = () => {\r\n return cookie.get(\"token\") ?? null;\r\n}\r\n\r\nexport const getIdTokenFromCookie = () => {\r\n return cookie.get(\"id_token\") ?? null;\r\n}\r\n\r\nexport const getRefreshTokenFromCookie = () => {\r\n return cookie.get(\"refresh_token\") ?? null;\r\n}","const _settings = {\r\n production: {\r\n sendOTPUri: \"https://gue9f4xrqe.execute-api.us-west-2.amazonaws.com/prod/sendOTP\",\r\n verifyOTPUri: \"https://gue9f4xrqe.execute-api.us-west-2.amazonaws.com/prod/verifyOTP\",\r\n selfUri: \"https://gue9f4xrqe.execute-api.us-west-2.amazonaws.com/prod/self\",\r\n graphqlUri: \"https://atqbkls9k2.execute-api.us-west-2.amazonaws.com/prod/graphql\",\r\n weatherGridPoints: \"https://api.weather.gov/points/\",\r\n authenticateUri: \"https://atqbkls9k2.execute-api.us-west-2.amazonaws.com/prod/authenticate\",\r\n tokenRefreshUri: \"https://atqbkls9k2.execute-api.us-west-2.amazonaws.com/prod/refreshToken\",\r\n redirectUri: \"https://myresourceschedule.auth.us-west-2.amazoncognito.com/login?response_type=code&client_id=315526t3a57ue09nukn4p17htj&redirect_uri=https://www.myresourceschedule.com/\",\r\n logOutUri: \"https://myresourceschedule.auth.us-west-2.amazoncognito.com/logout?response_type=code&client_id=315526t3a57ue09nukn4p17htj&redirect_uri=https://www.myresourceschedule.com/\",\r\n },\r\n preproduction: {\r\n sendOTPUri: \"https://gue9f4xrqe.execute-api.us-west-2.amazonaws.com/prod/sendOTP\",\r\n verifyOTPUri: \"https://gue9f4xrqe.execute-api.us-west-2.amazonaws.com/prod/verifyOTP\",\r\n selfUri: \"https://gue9f4xrqe.execute-api.us-west-2.amazonaws.com/prod/self\",\r\n graphqlUri: \"https://cv0xic1d52.execute-api.us-west-2.amazonaws.com/preprod/graphql\",\r\n weatherGridPoints: \"https://api.weather.gov/points/\",\r\n authenticateUri: \"https://cv0xic1d52.execute-api.us-west-2.amazonaws.com/preprod/authenticate\",\r\n tokenRefreshUri: \"https://cv0xic1d52.execute-api.us-west-2.amazonaws.com/preprod/refreshToken\",\r\n redirectUri: \"https://preproddevresourceschedule.auth.us-west-2.amazoncognito.com/login?response_type=code&client_id=erci05b5al8phg00j6e560trl&redirect_uri=https://preprod.devresourceschedule.com/\",\r\n logOutUri: \"https://preproddevresourceschedule.auth.us-west-2.amazoncognito.com/logout?response_type=code&client_id=erci05b5al8phg00j6e560trl&redirect_uri=https://preprod.devresourceschedule.com/\",\r\n },\r\n development: {\r\n sendOTPUri: \"https://003szlvwpb.execute-api.us-west-2.amazonaws.com/dev/sendOTP\",\r\n verifyOTPUri: \"https://003szlvwpb.execute-api.us-west-2.amazonaws.com/dev/verifyOTP\",\r\n selfUri: \"https://003szlvwpb.execute-api.us-west-2.amazonaws.com/dev/self\",\r\n graphqlUri: \"https://oedh84g9kf.execute-api.us-west-2.amazonaws.com/dev/graphql\",\r\n weatherGridPoints: \"https://api.weather.gov/points/\",\r\n authenticateUri: \"https://oedh84g9kf.execute-api.us-west-2.amazonaws.com/dev/authenticate\",\r\n tokenRefreshUri: \"https://oedh84g9kf.execute-api.us-west-2.amazonaws.com/dev/refreshToken\",\r\n redirectUri: \"https://devresourceschedule.auth.us-west-2.amazoncognito.com/login?response_type=code&client_id=6dj0rree6e2crvvv1m7tqa2e4k&redirect_uri=https://www.devresourceschedule.com/\",\r\n logOutUri: \"https://devresourceschedule.auth.us-west-2.amazoncognito.com/logout?response_type=code&client_id=6dj0rree6e2crvvv1m7tqa2e4k&redirect_uri=https://www.devresourceschedule.com/\",\r\n //logOutUri: \"https://devresourceschedule.auth.us-west-2.amazoncognito.com/logout?client_id=6dj0rree6e2crvvv1m7tqa2e4k&logout_uri=com.ResourceSchedule///logout\",\r\n },\r\n localhost: {\r\n sendOTPUri: \"https://003szlvwpb.execute-api.us-west-2.amazonaws.com/dev/sendOTP\",\r\n verifyOTPUri: \"https://003szlvwpb.execute-api.us-west-2.amazonaws.com/dev/verifyOTP\",\r\n selfUri: \"https://003szlvwpb.execute-api.us-west-2.amazonaws.com/dev/self\",\r\n graphqlUri: \"http://localhost:3000/dev/graphql\",\r\n weatherGridPoints: \"https://api.weather.gov/points/\",\r\n authenticateUri: \"http://localhost:3000/dev/authenticate\",\r\n tokenRefreshUri: \"http://localhost:3000/dev/refreshToken\",\r\n redirectUri: \"https://localhostrs.auth.us-west-2.amazoncognito.com/login?response_type=code&client_id=1lc4i5gbtcjchof8qcjeoqiup1&redirect_uri=http://localhost:7777/\",\r\n logOutUri: \"https://localhostrs.auth.us-west-2.amazoncognito.com/logout?response_type=code&client_id=1lc4i5gbtcjchof8qcjeoqiup1&logout_uri=http://localhost:7777/\",\r\n\r\n },\r\n};\r\n\r\nexport const stage = process.env.REACT_APP_STAGE ?? process.env.NODE_ENV ?? \"development\"\r\nexport const settings = _settings[stage as \"production\" | \"development\" | \"localhost\"];\r\n","/* eslint-disable no-loop-func */\r\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport moment, { Moment } from \"moment\";\r\nimport { Maybe, JobInfo, ResourceCode, CustomCrew, CustomCrewResourceComposition, JobInfoLocations, JobNumberInformation, MasterCrewSchedule, MasterCrewSchedulePaving, SuperIntendentPavingCalendarDatas, MaterialData, SuperIntendentPavingCalendar, EquipmentResource, EquipmentManagementData, EquipmentResourceManagementData, TruckingData, SuperIntendentPavingCalendarItemInput, PavingForeman, IncompleteSuperIntendentPavingCalendarDatas, PavingCalendarInput, Resource, EquipmentManagementSubCategoryData, EquipmentSubcategories, RemoteEquipment } from \"../graphql/schema-types\";\r\nimport { toMap } from \"../utils/toMap\";\r\nimport { toMultiMap } from \"../utils/toMultiMap\";\r\nimport { getTokenFromCookie, getIdTokenFromCookie, getRefreshTokenFromCookie } from \"../auth/getTokenFromCookie\";\r\nimport { AppThunk } from \"./store\";\r\nimport { settings } from \"../config/settings\";\r\nimport to from \"await-to-js\";\r\n\r\nexport type AuthState = {\r\n token: string | null | undefined;\r\n id_token: string | null | undefined;\r\n refresh_token: string | null | undefined;\r\n}\r\n\r\nexport interface StartState {\r\n jobNumber: number | \"\",\r\n beginDate: string,\r\n days: number | \"\",\r\n validJobNumber: boolean | null,\r\n validBeginDate: boolean | null,\r\n validDays: boolean | null,\r\n}\r\n\r\nexport interface LaborState {\r\n jobInfos: Maybe[];\r\n}\r\n\r\nexport interface EquipState {\r\n jobInfos: Maybe[];\r\n}\r\n\r\nexport interface TruckingState {\r\n truckingResources: Maybe[];\r\n}\r\n\r\nexport interface PavingState {\r\n pavingResources: Maybe[];\r\n}\r\n\r\nexport interface DayState {\r\n name?: string;\r\n locationIndex?: number;\r\n date: string;\r\n unix: number;\r\n weekDay: string;\r\n day: number;\r\n labor: LaborState;\r\n equip: EquipState;\r\n description: string;\r\n additionalResourceComments: string;\r\n trucking: TruckingState;\r\n paving: PavingState\r\n forecast: Forecast[];\r\n selectedResources: { [resourceID: string]: boolean }\r\n}\r\n\r\nexport interface LocationState {\r\n name?: string;\r\n activityDescription?: string;\r\n days: number[],\r\n daysByUnix: { [unix: number]: DayState; }\r\n}\r\n\r\nexport interface mDayByLocation {\r\n locationIndex?: number;\r\n dayUnix?: number;\r\n}\r\n\r\nexport interface LocationApp {\r\n [x: string]: any;\r\n locations: any[]\r\n name?: string;\r\n activityDescription?: string;\r\n days: number[],\r\n daysByUnix: { [unix: number]: DayState; }\r\n}\r\n\r\ntype Locations = {\r\n [NoOfDataSet: number]: LocationState;\r\n}\r\n\r\nexport interface ScheduleState {\r\n locations: Locations;\r\n}\r\n\r\ntype ResourceCodesByResourceType = { [resourceType: string]: Maybe[] };\r\n\r\ntype JobInfosByStartDate = { [startDate: number]: Maybe[] };\r\n\r\ntype ResourceCodesByResourceID = { [resourceID: string]: Maybe };\r\n\r\ntype ResourceIdIndexesByResourceType = { [resourceType: string]: { [resourceId: string]: number; } };\r\n\r\ntype ModifiedDayByLocation = {\r\n [locationIndex: number]: {\r\n [dayUnix: number]: string[]\r\n }\r\n}\r\n\r\ntype JobInfosByLocationAndStartDate = {\r\n [location: number]: {\r\n [startDate: number]: Maybe[];\r\n }\r\n}\r\n\r\ntype ModifiedLocationInfo = {\r\n [location: number]: {\r\n locationName?: string;\r\n activityDescription?: string;\r\n }\r\n}\r\n\r\n// type EquipmentManagement = {\r\n// resources: Maybe[];\r\n// }\r\n\r\ntype PavingDayState = {\r\n date: number;\r\n isDayBlocked: boolean;\r\n items: Maybe[];\r\n jobNumbersBlocked: number[];\r\n noWorkForForeman: string[];\r\n jobNumbersRedBordered: number[];\r\n equipment: Maybe[];\r\n equipmentSubCategory: Maybe[];\r\n itemsToRemove: SuperIntendentPavingCalendarItemInput[];\r\n}\r\n\r\nexport interface PavingModule {\r\n [date: number]: PavingDayState;\r\n}\r\n\r\ntype PavingModuleUser = {\r\n name: string;\r\n email: string;\r\n groups: string[];\r\n isInPavingSupers: boolean | null;\r\n isInGeneralPavingSupers: boolean | null;\r\n isDisabled: boolean | null;\r\n}\r\nexport interface AppState {\r\n auth: AuthState;\r\n start: StartState;\r\n schedule: ScheduleState;\r\n lockedDays: Maybe[];\r\n resourceCodes: Maybe[];\r\n resourceCodesByResourceType: ResourceCodesByResourceType;\r\n resourceCodesByResourceID: ResourceCodesByResourceID;\r\n jobInfos: Maybe[];\r\n jobInfosByStartDate: JobInfosByStartDate;\r\n jobInfosByLocationAndStartDate: JobInfosByLocationAndStartDate;\r\n resourceIdIndexesByResourceType: ResourceIdIndexesByResourceType;\r\n lastDay: DayState | null;\r\n copyDay: DayState | null;\r\n copyTrucking: Maybe[] | null;\r\n copyTruckingJobInfo: JobInfo | null;\r\n copyPaving: Maybe[] | null;\r\n copyPavingJobInfo: JobInfo | null;\r\n copyPavingTruckingResources: Maybe[] | null;\r\n copyPavingTruckingResourceJobInfo: JobInfo | null;\r\n customCrews: Maybe[];\r\n materialDatas: Maybe[];\r\n jobNumberInformations: Maybe;\r\n modifiedDayByLocation: ModifiedDayByLocation;\r\n modifiedLocation: Number[];\r\n modifiedLocationInfo: ModifiedLocationInfo;\r\n trucking: Maybe[];\r\n paving: Maybe[];\r\n forecast: Forecast[];\r\n pavingModule: PavingModule;\r\n pavingModuleUser: PavingModuleUser;\r\n equipmentResources: Maybe[];\r\n equipmentSubcategories: Maybe;\r\n truckingDatas: Maybe[] | undefined;\r\n pavingForemans: Maybe[] | undefined;\r\n fullDayPreview: SheetRowDayPreview[];\r\n pavingModuleIncompleteItems: Maybe[];\r\n remoteEquipmentList: Maybe[];\r\n}\r\n\r\nexport const getInitialState = (token?: string | null | undefined, id_token?: string | null | undefined, refresh_token?: string | null | undefined): AppState => ({\r\n auth: {\r\n token: token === undefined ? getTokenFromCookie() : token,\r\n id_token: id_token === undefined ? getIdTokenFromCookie() : id_token,\r\n refresh_token: refresh_token === undefined ? getRefreshTokenFromCookie() : refresh_token\r\n },\r\n start: {\r\n jobNumber: \"\",\r\n beginDate: \"\",\r\n days: \"\",\r\n validJobNumber: null,\r\n validBeginDate: null,\r\n validDays: null,\r\n },\r\n schedule: {\r\n locations: {},\r\n },\r\n lockedDays: [],\r\n resourceCodes: [],\r\n resourceCodesByResourceType: {},\r\n resourceCodesByResourceID: {},\r\n jobInfos: [],\r\n jobInfosByStartDate: {},\r\n jobInfosByLocationAndStartDate: {},\r\n resourceIdIndexesByResourceType: {},\r\n modifiedDayByLocation: {},\r\n modifiedLocation: [],\r\n modifiedLocationInfo: {},\r\n lastDay: null,\r\n copyDay: null,\r\n copyTrucking: null,\r\n copyTruckingJobInfo: null,\r\n copyPaving: null,\r\n copyPavingJobInfo: null,\r\n copyPavingTruckingResources: null,\r\n copyPavingTruckingResourceJobInfo: null,\r\n customCrews: [],\r\n materialDatas: [],\r\n jobNumberInformations: {\r\n address: \"\",\r\n coordinateLat: \"\",\r\n coordinateLong: \"\",\r\n jobName: \"\",\r\n jobNumber: 0,\r\n superIntendentCode: \"\",\r\n superIntendentName: \"\"\r\n },\r\n trucking: [],\r\n paving: [],\r\n forecast: [],\r\n pavingModule: {},\r\n pavingModuleUser: {\r\n name: \"\",\r\n email: \"\",\r\n groups: [],\r\n isInPavingSupers: null,\r\n isInGeneralPavingSupers: null,\r\n isDisabled: null\r\n },\r\n equipmentResources: [],\r\n equipmentSubcategories: {\r\n equipmentsForCheckbox: \"\",\r\n equipmentsForInput: \"\"\r\n },\r\n truckingDatas: [],\r\n fullDayPreview: [],\r\n pavingForemans: [],\r\n pavingModuleIncompleteItems: [],\r\n remoteEquipmentList: []\r\n});\r\n\r\nconst getMomentDays = (startDate: string, days: number): Moment[] => {\r\n const start = moment.utc(startDate, \"YYYY-MM-DD\");\r\n const momentDays: Moment[] = [start];\r\n for (let i = 0; i < days - 1; i++) {\r\n momentDays.push(start.clone().add(i + 1, \"day\"))\r\n }\r\n return momentDays;\r\n}\r\n\r\nconst createDay = (md: Moment): DayState => {\r\n return ({\r\n date: md.format(\"MM/DD/YYYY\"),\r\n unix: md.valueOf(),\r\n weekDay: md.format(\"ddd\"),\r\n day: md.weekday(),\r\n labor: {\r\n jobInfos: [],\r\n },\r\n equip: {\r\n jobInfos: [],\r\n },\r\n trucking: {\r\n truckingResources: []\r\n },\r\n paving: {\r\n pavingResources: []\r\n },\r\n forecast: [],\r\n description: \"\",\r\n additionalResourceComments: \"\",\r\n selectedResources: {}\r\n })\r\n}\r\n\r\nconst clearDayForLockedDays = (itemFromDay: DayState, md: Moment) => {\r\n const _itemFromDay = createDay(md);\r\n const isPavingResInJobInfo = true\r\n ? itemFromDay.labor.jobInfos.filter(job => job?.resourceID === \"PAV\").length > 0\r\n : false;\r\n\r\n const hasTruckingResWithOperationTypePaving = true\r\n ? itemFromDay.trucking.truckingResources.filter(trucking => trucking?.operationType === \"paving\").length > 0\r\n : false;\r\n\r\n if (itemFromDay.paving.pavingResources.length > 0 && isPavingResInJobInfo === true) {\r\n _itemFromDay.paving.pavingResources.push(...itemFromDay.paving.pavingResources);\r\n _itemFromDay.labor.jobInfos.push(itemFromDay.labor.jobInfos?.filter(job => job?.resourceID === \"PAV\")[0] as JobInfo);\r\n if (hasTruckingResWithOperationTypePaving === true) {\r\n const truckingResources = itemFromDay.trucking.truckingResources?.filter(trucking => trucking?.operationType === \"paving\");\r\n truckingResources?.forEach(tr => {\r\n _itemFromDay.trucking.truckingResources.push(tr);\r\n });\r\n const truckingJobInfoResource = itemFromDay.equip.jobInfos?.filter(job => job?.resourceID === \"TRK\");\r\n truckingJobInfoResource[0]!.resourceQTY = truckingResources\r\n ?.map(tr => tr?.qty)\r\n ?.reduce((previousValue, currentValue) => previousValue! as number + currentValue! as number, 0) as number;\r\n _itemFromDay.equip.jobInfos.push(...truckingJobInfoResource,);\r\n }\r\n }\r\n return _itemFromDay;\r\n}\r\n\r\n\r\n// const createCopyFullDayObjectForPaste = (resourcesFromCopyDay: DayState, md: Moment, dayResourcesBeforePaste: DayState, locationIndex: number, isDayLocked: boolean) => {\r\n// const _itemFromDay = resourcesFromCopyDay;\r\n\r\n// // resources from copy day\r\n// const truckingResourcesWithOpTypePaving = resourcesFromCopyDay.trucking.truckingResources?.filter(tr => tr?.operationType === \"paving\");\r\n// const truckingResourcesWithoutOpTypePaving = resourcesFromCopyDay.trucking.truckingResources?.filter(tr => tr?.operationType !== \"paving\");\r\n// const equipJobInfos = resourcesFromCopyDay?.equip.jobInfos;\r\n// const equipJobInfosWithoutTrk = resourcesFromCopyDay?.equip.jobInfos.filter(ji => ji?.resourceID !== \"TRK\");\r\n// const laborJobInfosWithoutPav = resourcesFromCopyDay?.labor.jobInfos.filter(ji => ji?.resourceID !== \"PAV\");\r\n// const hasCopyDayTrucking = resourcesFromCopyDay.equip.jobInfos.filter(ji => ji?.resourceID === \"TRK\").length > 0 ? true : false;\r\n// const hasCopyDayPaving = resourcesFromCopyDay.labor.jobInfos.filter(ji => ji?.resourceID === \"PAV\").length > 0 ? true : false;\r\n// const isLocationIndexForPaving = locationIndex > 2 ? false : true;\r\n\r\n// // resources from current day before pasting\r\n// const truckingResourcesCurrentDayWithOpTypePav = dayResourcesBeforePaste.trucking.truckingResources.filter(tr => tr?.operationType === \"paving\");\r\n// const pavingResourcesCurrentDay = dayResourcesBeforePaste.paving.pavingResources;\r\n// const pavingJobInfoCurrentDay = dayResourcesBeforePaste.labor.jobInfos.filter(ji => ji?.resourceID === \"PAV\")[0];\r\n// const hasCurrentDayTrucking = dayResourcesBeforePaste.equip.jobInfos.filter(ji => ji?.resourceID === \"TRK\").length > 0 ? true : false;\r\n\r\n// if (isLocationIndexForPaving === false || isDayLocked === true) {\r\n// if (pavingJobInfoCurrentDay != null) {\r\n// _itemFromDay.labor.jobInfos = resourcesFromCopyDay?.labor.jobInfos;\r\n// }\r\n// else {\r\n// _itemFromDay.labor.jobInfos = laborJobInfosWithoutPav;\r\n// }\r\n// }\r\n// else {\r\n// _itemFromDay.labor.jobInfos = resourcesFromCopyDay?.labor.jobInfos;\r\n// }\r\n\r\n// if (hasCopyDayPaving === false) {\r\n// _itemFromDay.labor.jobInfos.push(pavingJobInfoCurrentDay);\r\n// _itemFromDay.paving.pavingResources = pavingResourcesCurrentDay;\r\n// }\r\n\r\n// if (hasCopyDayPaving === true && (isLocationIndexForPaving === false || isDayLocked === true) && pavingResourcesCurrentDay.length === 0) {\r\n// _itemFromDay.paving.pavingResources = [];\r\n// }\r\n\r\n// if (isLocationIndexForPaving === false || isDayLocked === true) {\r\n// if (truckingResourcesWithoutOpTypePaving.length > 0) {\r\n// _itemFromDay.equip.jobInfos = equipJobInfos;\r\n// }\r\n// else {\r\n// _itemFromDay.equip.jobInfos = equipJobInfosWithoutTrk;\r\n// }\r\n// }\r\n// else {\r\n// _itemFromDay.equip.jobInfos = equipJobInfos;\r\n// }\r\n\r\n// if (hasCopyDayTrucking === false && hasCurrentDayTrucking === true) {\r\n// _itemFromDay.trucking.truckingResources = truckingResourcesCurrentDayWithOpTypePav;\r\n// }\r\n\r\n// if (truckingResourcesWithoutOpTypePaving.length > 0) {\r\n\r\n// if (truckingResourcesCurrentDayWithOpTypePav.length === 0) {\r\n// _itemFromDay.trucking.truckingResources = truckingResourcesWithoutOpTypePaving;\r\n// }\r\n// else {\r\n// truckingResourcesWithoutOpTypePaving.forEach(tr => {\r\n// _itemFromDay.trucking.truckingResources.push(tr);\r\n// })\r\n// }\r\n// }\r\n\r\n// if (truckingResourcesWithOpTypePaving.length > 0) {\r\n// if (isDayLocked === false && isLocationIndexForPaving === true) {\r\n// truckingResourcesWithOpTypePaving.forEach(tr => {\r\n// _itemFromDay.trucking.truckingResources.push(tr);\r\n// })\r\n// }\r\n// if (_itemFromDay.trucking.truckingResources.length === 0) {\r\n// _itemFromDay.trucking.truckingResources = [];\r\n// }\r\n// }\r\n\r\n// const truckingJobInfo = _itemFromDay.equip.jobInfos.filter(ji => ji?.resourceID === \"TRK\")[0];\r\n\r\n// const qtySumFromTruckingResourcesFromDay = _itemFromDay.trucking.truckingResources\r\n// ?.map(tr => tr?.qty)\r\n// ?.reduce((previousValue, currentValue) => previousValue! as number + currentValue! as number, 0) as number;\r\n\r\n// if (truckingJobInfo != null) {\r\n// truckingJobInfo.resourceQTY = qtySumFromTruckingResourcesFromDay;\r\n// }\r\n\r\n// return _itemFromDay;\r\n// }\r\n\r\nconst createLocation = (start: StartState, name: string, activityDescription: string): LocationState => {\r\n const momentDays = getMomentDays(start.beginDate, parseInt(`${start.days}`));\r\n const days: DayState[] = momentDays.map((md, i) => createDay(md));\r\n\r\n return ({\r\n name,\r\n activityDescription,\r\n days: days.map(day => day.unix),\r\n daysByUnix: toMap(days, day => day.unix),\r\n });\r\n}\r\n\r\nexport const getMomentDaysForPavingModule = (startDate: string, days: number) => {\r\n const start = moment.utc(startDate, \"YYYY-MM-DD\");\r\n const momentDays: Moment[] = [start];\r\n for (let i = 0; i < days - 1; i++) {\r\n momentDays.push(start.clone().add(i + 1, \"day\"))\r\n }\r\n return momentDays;\r\n}\r\n\r\n\r\nexport const createPavingModuleDay = (md: Moment): PavingDayState => {\r\n return ({\r\n date: md.valueOf(),\r\n isDayBlocked: false,\r\n items: [],\r\n jobNumbersBlocked: [],\r\n noWorkForForeman: [],\r\n jobNumbersRedBordered: [],\r\n equipment: [],\r\n equipmentSubCategory: [],\r\n itemsToRemove: [],\r\n })\r\n}\r\n\r\nexport const createPavingModule = (numberOfDays: number, firstDay?: string) => {\r\n const firstDayOfCurrentWeek = moment().startOf('week').format(\"YYYY-MM-DD\");\r\n let momentDaysForPavingModule = [];\r\n\r\n if (firstDay == null) {\r\n momentDaysForPavingModule = getMomentDaysForPavingModule(firstDayOfCurrentWeek, numberOfDays);\r\n }\r\n else {\r\n momentDaysForPavingModule = getMomentDaysForPavingModule(firstDay, numberOfDays);\r\n }\r\n\r\n const days = momentDaysForPavingModule.map((md, i) => createPavingModuleDay(md));\r\n\r\n return toMap(days, day => day?.date);\r\n}\r\n\r\ntype InitPayload = {\r\n jobInfos: Maybe[];\r\n resourceCodes: Maybe[];\r\n jobInfoLocationsData: Maybe[];\r\n pavingCrewData: Maybe[];\r\n truckingCrewData: Maybe[];\r\n materialDatas: Maybe[];\r\n lockedDays: Maybe[];\r\n};\r\n\r\ntype InitPavingModule = {\r\n superIntendentDatas: Maybe[]\r\n}\r\n\r\ntype AddBlockedJobNumbersToPavingModule = {\r\n pavingCalendarItems: Maybe[]\r\n}\r\n\r\ntype CustomCrewsPayload = {\r\n customCrews: Maybe[];\r\n}\r\n\r\ntype JobNumberInformationPayload = {\r\n jobNumberInformations: Maybe;\r\n}\r\n\r\ntype ClearDayPayload = {\r\n locationIndex: number;\r\n unix: number;\r\n lockedDays?: Maybe[];\r\n}\r\n\r\ntype ChangeDoubledShiftPlayload = {\r\n stateName: string;\r\n locationIndex: number;\r\n day: number;\r\n}\r\n\r\ntype JobChangePayload = {\r\n locationIndex: number;\r\n unix: number;\r\n indexPos: number | null;\r\n rc?: Maybe;\r\n qty?: number | \"\";\r\n resourceType?: string;\r\n}\r\n\r\ntype RemoveJobPayload = {\r\n locationIndex: number;\r\n unix: number;\r\n indexPos: number | null;\r\n resourceType: \"labor\" | \"equipment\";\r\n resourceID: string;\r\n}\r\n\r\ntype AddPavingFromPavingCalendarResources = {\r\n locationIndex: number;\r\n pavingResources: Maybe[] | null;\r\n jobInfoResources: Maybe[] | null;\r\n truckingResources: Maybe[] | null;\r\n jobInfoToUpdate: Maybe[] | null;\r\n}\r\n\r\ntype DeleteResourcesFromJIAndTrucking = {\r\n locationIndex: number;\r\n unix: number;\r\n truckingResources: PavingCalendarInput[] | null;\r\n}\r\n\r\ntype AddPavingFromPavingManagement = {\r\n locationIndex: number;\r\n jobInfoResources: Maybe[] | null;\r\n jobInfoToUpdate: Maybe[] | null;\r\n unix: number;\r\n}\r\n\r\ntype AddResourcesToDay = {\r\n locationIndex: number;\r\n unix: number;\r\n resources: Maybe[];\r\n}\r\n\r\ntype AddDescriptionToDay = {\r\n locationIndex: number;\r\n unix: number;\r\n description: string;\r\n}\r\n\r\ntype LocationInfo = {\r\n locationIndex: number;\r\n activityDescription?: string;\r\n location?: string;\r\n}\r\n\r\ntype AddAdditionalResourceCommentsToDay = {\r\n locationIndex: number;\r\n unix: number;\r\n additionalResourceComments: string;\r\n}\r\n\r\ntype AddTruckingResourcesToDay = {\r\n locationIndex: number;\r\n unix: number;\r\n truckingResources: Maybe[];\r\n}\r\n\r\ntype RemoveTruckingResourcesToDay = {\r\n locationIndex: number;\r\n unix: number;\r\n}\r\n\r\ntype AddPavingResourcesToDay = {\r\n locationIndex: number;\r\n unix: number;\r\n pavingResources: Maybe[];\r\n}\r\n\r\ntype AddTruckingQTYFromPavingToDay = {\r\n locationIndex: number;\r\n unix: number;\r\n qty: number;\r\n}\r\n\r\ntype Coordinates = {\r\n x: number;\r\n y: number;\r\n}\r\n\r\ntype Forecast = {\r\n detailedForecast: string;\r\n endTime: string;\r\n icon: string;\r\n isDaytime: boolean;\r\n name: string;\r\n number: number;\r\n shortForecast: string;\r\n startTime: string;\r\n temperature: number;\r\n temperatureTrend: string;\r\n temperatureUnit: string;\r\n windDirection: string;\r\n windSpeed: string;\r\n}\r\n\r\ntype ChangePavingItemToAnotherDay = {\r\n date: number;\r\n newDate: number;\r\n jobNumber: number;\r\n locationIndex: number;\r\n shift: string;\r\n}\r\n\r\ntype ChangePavingItemForeman = {\r\n pavingForeman: string;\r\n date: number;\r\n jobNumber: number;\r\n locationIndex: number;\r\n shift: string;\r\n}\r\n\r\ntype AddPavingModuleUser = {\r\n name: string,\r\n email: string;\r\n groups: string[];\r\n isInPavingSupers: boolean\r\n isInGeneraPavingSupers: boolean,\r\n isDisabled: boolean\r\n}\r\n\r\ntype UpdateJobNumberStatusFromDay = {\r\n unix: number,\r\n jobNumber: number,\r\n lock: boolean\r\n}\r\n\r\nexport type UpdateBlockedForemanFromCurrentDay = {\r\n unix: number,\r\n lock: boolean,\r\n foremanName: string\r\n}\r\n\r\ntype UpdateBlockedForemanFromDay = {\r\n unix: number,\r\n foremans: UpdateBlockedForemanFromCurrentDay[]\r\n}\r\n\r\ntype UpdateJobsNumbersRedBordered = {\r\n unix: number,\r\n jobNumber: number,\r\n status: boolean\r\n}\r\n\r\ntype UpdateDayStatusForPavingModule = {\r\n unix: number,\r\n isDayBlocked: boolean\r\n}\r\n\r\ntype AddDayStatusForPavingModule = {\r\n superIntendentPavingCalendarItems: Maybe[]\r\n}\r\n\r\ntype AddEquipmentResources = {\r\n equipmentResources: Maybe[]\r\n}\r\n\r\ntype AddEquipmentSubcategories = {\r\n equipmentsForInput?: Maybe | undefined;\r\n equipmentsForCheckbox?: Maybe | undefined;\r\n}\r\n\r\ntype AddEquipmentToDay = {\r\n equipmentManagementResources: Maybe[],\r\n equipmentSubcategoryData?: Maybe[]\r\n}\r\n\r\ntype UpdateEquipmentToDay = {\r\n dates: number[],\r\n jobNumber: number,\r\n equipmentManagementResources: Maybe[],\r\n equipmentSubcategoryData: Maybe[]\r\n}\r\n\r\ntype AddPavingForemans = {\r\n pavingForemans: Maybe[] | undefined;\r\n}\r\n\r\ntype UpdateEquipmentResourcesList = {\r\n date: number;\r\n newDate: number;\r\n nrOfItemsWithSameJobNumber: number;\r\n jobNumber: number;\r\n shift: string;\r\n}\r\n\r\ntype AddTruckingAndMaterialDatas = {\r\n truckingDatas: Maybe[] | undefined;\r\n materialDatas: Maybe[] | undefined;\r\n}\r\n\r\ntype UpdateTruckingAndMaterialDatas = {\r\n truckingDatas?: Maybe[] | undefined;\r\n materialDatas?: Maybe[] | undefined;\r\n}\r\n\r\ntype UpdateForemanForItemsFromCalendar = {\r\n foremanNameForUpdate: string;\r\n foremanToDelete: string;\r\n}\r\n\r\ntype SheetRowDayPreview = {\r\n date: number,\r\n jobNumber: number,\r\n locatinIndex: number,\r\n superIntendent: string,\r\n tonnage: number | null | undefined,\r\n broker: string,\r\n typeOfTrucks: string,\r\n nrOfTrucks: number | null | undefined,\r\n shift: string,\r\n plant: string,\r\n loadOutTime: string,\r\n material: string,\r\n updateJobInfoTable: boolean,\r\n updateMasterCrewSchedulePavingTable: boolean,\r\n updateMasterCrewScheduleTable: boolean,\r\n jobName: string,\r\n pavingSuper: string,\r\n areaManager: string,\r\n pmpe: string,\r\n pavingForeman: string,\r\n pavingSuperIntendent: string,\r\n jobMap: string,\r\n tph: number,\r\n uts: string,\r\n oilTruk: string,\r\n extrawork: string,\r\n bookTruckVendor: string,\r\n crewMakeLab: number,\r\n crewMakeOp: number,\r\n grinder4ft: number,\r\n grinder6ft: number,\r\n grinder7ft: number,\r\n grinder12ft: number,\r\n resourcesOp: [Resource],\r\n resourcesLab: [Resource],\r\n mixDesignApproval: string,\r\n rtsSupport: string,\r\n mixSubmital: string\r\n}\r\n\r\ntype UpdateJobMap = {\r\n startDate: number,\r\n jobNumber: number,\r\n jobMap: string\r\n}\r\n\r\ntype AddIncompleteSuperCalendarPavingDatas = {\r\n incompleteItems: Maybe[]\r\n}\r\n\r\ntype RemoteEquipmentList = {\r\n list: Maybe[];\r\n}\r\n\r\ntype LockedDays = {\r\n lockedDays: Maybe[];\r\n}\r\n\r\nexport const appSlice = createSlice({\r\n name: 'app',\r\n initialState: getInitialState(),\r\n reducers: {\r\n reset: () => {\r\n return getInitialState();\r\n },\r\n addToken: (state, action: PayloadAction>) => {\r\n state.auth.id_token = action.payload.id_token;\r\n state.auth.refresh_token = action.payload.refresh_token;\r\n },\r\n refreshAuthToken: (state, action: PayloadAction>) => {\r\n state.auth.id_token = action.payload.id_token;\r\n },\r\n removeToken: state => {\r\n delete state.auth.token;\r\n delete state.auth.id_token;\r\n },\r\n login: (state, action: PayloadAction) => {\r\n state.auth = action.payload;\r\n },\r\n logout: () => {\r\n return ({\r\n ...getInitialState(null, null, null),\r\n });\r\n },\r\n start: (state, action: PayloadAction) => {\r\n state.start = action.payload;\r\n },\r\n init: (state, action: PayloadAction) => {\r\n state.schedule.locations = []\r\n const { jobInfos, resourceCodes, jobInfoLocationsData, pavingCrewData, truckingCrewData, materialDatas, lockedDays } = action.payload;\r\n\r\n const _locations = jobInfoLocationsData.map(ji => ji != null ? ji?.locationIndex : null)\r\n state.jobInfos = [...jobInfos].sort((a, b) => a?.resourceID! < b?.resourceID! ? -1 : 1);\r\n\r\n if (_locations.length === 0) {\r\n state.schedule.locations[1] = createLocation(state.start, \"Location 1\", \"\");\r\n }\r\n\r\n if (_locations.length !== 0) {\r\n if (!_locations?.includes(1)) {\r\n state.schedule.locations[1] = createLocation(state.start, \"Location 1\", \"\");\r\n }\r\n if (!_locations?.includes(2)) {\r\n state.schedule.locations[2] = createLocation(state.start, \"Location 2\", \"\");\r\n }\r\n }\r\n\r\n (jobInfoLocationsData ?? [])?.forEach(jil => {\r\n if (jil == null) { return }\r\n state.schedule.locations[jil?.locationIndex ?? 1] = createLocation(state.start, jil.name ?? \"\", jil.activityDescription ?? \"\");\r\n })\r\n\r\n state.jobInfos?.forEach(ji => {\r\n let type: \"labor\" | \"equip\" = ji?.resourceType === \"Labor\" ? \"labor\" : \"equip\";\r\n\r\n if (state.schedule.locations?.[(ji?.locationIndex ?? 1)] == null) {\r\n state.schedule.locations[(ji?.locationIndex ?? 1)] = createLocation(state.start, (`${ji?.locationIndex ?? 1}`), \"\");\r\n }\r\n\r\n state.schedule.locations?.[(ji?.locationIndex ?? 1)]?.daysByUnix[ji?.date ?? 0]?.[type].jobInfos.push(ji);\r\n\r\n if (state.schedule.locations?.[(ji?.locationIndex ?? 1)]?.daysByUnix?.[ji?.date ?? 0]?.selectedResources != null) {\r\n if (ji?.resourceID as string !== \"ACP\") {\r\n\r\n state.schedule.locations[(ji?.locationIndex ?? 1)].daysByUnix[ji?.date ?? 0].selectedResources[ji?.resourceID as string] = true;\r\n }\r\n }\r\n\r\n if (\r\n state.schedule.locations?.[(ji?.locationIndex ?? 1)].daysByUnix[ji?.date ?? 0] != null\r\n && state.schedule.locations[(ji?.locationIndex ?? 1)].daysByUnix[ji?.date ?? 0]?.description === \"\"\r\n && ji?.description !== \" \"\r\n ) {\r\n state.schedule.locations[(ji?.locationIndex ?? 1)].daysByUnix[ji?.date ?? 0].description = ji?.description!\r\n }\r\n\r\n if (\r\n state.schedule.locations?.[(ji?.locationIndex ?? 1)].daysByUnix[ji?.date ?? 0] != null\r\n && state.schedule.locations?.[(ji?.locationIndex ?? 1)].daysByUnix[ji?.date ?? 0]?.additionalResourceComments === \"\"\r\n && ji?.additionalResourcesComments !== \" \"\r\n ) {\r\n state.schedule.locations[(ji?.locationIndex ?? 1)].daysByUnix[ji?.date ?? 0].additionalResourceComments = ji?.additionalResourcesComments!\r\n }\r\n });\r\n\r\n state.resourceCodes = [...resourceCodes]?.sort((a, b) => a?.ResourceID! < b?.ResourceID! ? -1 : 1)\r\n\r\n const resourceCodesByResourceType = toMultiMap(state.resourceCodes, rc => rc?.ResourceType ?? \"\");\r\n\r\n state.resourceCodesByResourceType = resourceCodesByResourceType;\r\n\r\n const resourceIdsByIndex: any = {};\r\n\r\n Object.keys(resourceCodesByResourceType).forEach(key => {\r\n resourceIdsByIndex[key] = toMap(resourceCodesByResourceType[key], item => item?.ResourceID ?? \"\", (_, index) => index);\r\n });\r\n\r\n state.resourceIdIndexesByResourceType = resourceIdsByIndex;\r\n\r\n pavingCrewData?.forEach(pv => {\r\n if (pv != null && pv?.rtsSupport == null) pv.rtsSupport = \"\";\r\n state.schedule.locations[(pv?.locationIndex ?? 1)]?.daysByUnix[pv?.date ?? 0]?.paving.pavingResources.push(pv)\r\n })\r\n\r\n truckingCrewData?.forEach(tr => {\r\n state.schedule.locations[(tr?.locationIndex ?? 1)]?.daysByUnix[tr?.date ?? 0]?.trucking.truckingResources.push(tr)\r\n })\r\n\r\n state.materialDatas = [...materialDatas]?.sort((a, b) => a?.value! < b?.value! ? -1 : 1);\r\n\r\n state.lockedDays = lockedDays;\r\n\r\n state.modifiedDayByLocation = {};\r\n state.modifiedLocation = [];\r\n state.modifiedLocationInfo = {};\r\n\r\n },\r\n initPavingModule: (state, action: PayloadAction) => {\r\n const nrOfDays = 180;\r\n\r\n if (Object.keys(state.pavingModule).length === 0) {\r\n state.pavingModule = createPavingModule(nrOfDays);\r\n }\r\n\r\n // const _nrOfWeekes = Math.round(nrOfDays / 7);\r\n // for (let i = 1; i <= _nrOfWeekes; i++) {\r\n // state.pavingModulePriorityJobsList[i] = [];\r\n // }\r\n },\r\n // addDataToPriorityJobsList: (state, action: PayloadAction) => {\r\n // const { superIntendentDatas } = action.payload;\r\n // const _days = Object.keys(state.pavingModule);\r\n // let values: any[] = [];\r\n\r\n // for (let dayNr = 0; dayNr <= _days.length; dayNr++) {\r\n // const _firstDay = _days[dayNr];\r\n // const _lastDay = _days[dayNr + 6];\r\n // const _weekNr = dayNr === 0 ? 1 : (dayNr / 7 + 1);\r\n\r\n // const filteredDaysByWeek = superIntendentDatas.filter(d => d?.date >= parseInt(_firstDay) && d?.date <= parseInt(_lastDay));\r\n\r\n // const jobNumbersFromCurrentWeek = filteredDaysByWeek.map(i => i?.jobNumber);\r\n // const _getUnicJobNumbers = jobNumbersFromCurrentWeek.filter((v, i, s) => s.indexOf(v) === i);\r\n\r\n // _getUnicJobNumbers?.forEach(jn => values.push({ jobNumber: jn, priority: jobNumbersFromCurrentWeek?.filter(j => j === jn).length }))\r\n\r\n // // values = values.sort((a, b) => {\r\n // // // sort first by priority\r\n // // if (a?.priority! > b?.priority!) return a?.priority! - b?.priority!;\r\n\r\n // // return 1;\r\n // // });\r\n\r\n // values = values.sort((n, p) => n.priority! > p.priority! ? -1 : 1);\r\n\r\n // state.pavingModulePriorityJobsList[_weekNr] = values;\r\n\r\n // values = [];\r\n // dayNr = dayNr + 6;\r\n // }\r\n // },\r\n addDataToPavingModule: (state, action: PayloadAction) => {\r\n const { superIntendentDatas } = action.payload;\r\n\r\n if (superIntendentDatas == null) return;\r\n\r\n Object.keys(state.pavingModule).forEach((d, index) => {\r\n const key = parseInt(d);\r\n const superIntendentDatasFilteredByDay = superIntendentDatas\r\n .filter(day => day?.date === parseInt(d));\r\n\r\n // const priorityList = state.pavingModulePriorityJobsList[Math.floor(index / 7) + 1];\r\n\r\n // let sortedItems: Maybe[] = [];\r\n\r\n // priorityList.forEach((p, i) => {\r\n // let _items: Maybe[] = superIntendentDatasFilteredByDay?.filter(d => d?.jobNumber === p.jobNumber);\r\n\r\n // if (_items.length > 0) {\r\n // sortedItems = [...sortedItems, ..._items];\r\n // }\r\n // });\r\n\r\n const superIntendentDatasOrderByJNAndShift = superIntendentDatasFilteredByDay.sort((a, b) => {\r\n // sort first by job number\r\n if (a?.jobNumber! < b?.jobNumber!) return a?.jobNumber! - b?.jobNumber!;\r\n\r\n // if the job numbers are the same, sort by the shift (first day, second the night)\r\n if (a?.jobNumber! === b?.jobNumber! && a?.shift! < b?.shift!) return (a?.shift! < b?.shift!) ? -1 : 1;\r\n\r\n return 1;\r\n });\r\n\r\n state.pavingModule[key].items = superIntendentDatasOrderByJNAndShift;\r\n });\r\n },\r\n\r\n removeItemFromPavingModule: (state, action: PayloadAction) => {\r\n const superIntendentDatas = action.payload;\r\n\r\n if (superIntendentDatas == null) return;\r\n Object.keys(state.pavingModule).forEach(d => {\r\n\r\n if (parseInt(d) === superIntendentDatas.date) {\r\n const key = parseInt(d);\r\n state.pavingModule[key].items.forEach((item, index) => {\r\n if (item != null && item?.jobNumber === superIntendentDatas?.jobNumber && item?.locationIndex === superIntendentDatas?.locationIndex) {\r\n delete state.pavingModule[key].items[index];\r\n let equipsWithAnotherJN = state.pavingModule[key].equipment.filter(eq => eq?.jobNumber !== superIntendentDatas?.jobNumber);\r\n let schedulesWithAnotherShift = state.pavingModule[key].items.filter(i => i?.jobNumber === superIntendentDatas?.jobNumber && i?.locationIndex !== superIntendentDatas?.locationIndex);\r\n if (schedulesWithAnotherShift.length === 0) {\r\n state.pavingModule[key].equipment = [];\r\n equipsWithAnotherJN.forEach(e => {\r\n if (!state.pavingModule[key].equipment.includes(e))\r\n state.pavingModule[key].equipment.push(e);\r\n })\r\n }\r\n }\r\n }\r\n )\r\n }\r\n });\r\n },\r\n\r\n addIncompleteItemsToPavingModule: (state, action: PayloadAction) => {\r\n const { incompleteItems } = action.payload;\r\n\r\n incompleteItems.forEach(item => {\r\n if (item != null) {\r\n state.pavingModuleIncompleteItems.push(item)\r\n }\r\n })\r\n },\r\n\r\n addEquipmentSubcategories: (state, action: PayloadAction) => {\r\n const { equipmentsForCheckbox, equipmentsForInput } = action.payload;\r\n\r\n state.equipmentSubcategories!.equipmentsForCheckbox = equipmentsForCheckbox;\r\n state.equipmentSubcategories!.equipmentsForInput = equipmentsForInput;\r\n },\r\n\r\n addEquipmentResources: (state, action: PayloadAction) => {\r\n state.equipmentResources = action.payload.equipmentResources;\r\n },\r\n\r\n addDayStatusToPavingModule: (state, action: PayloadAction) => {\r\n const { superIntendentPavingCalendarItems } = action.payload;\r\n const firstDayAllowedToModify = moment().utc();\r\n\r\n Object.keys(state.pavingModule).forEach(d => {\r\n const currentDate = parseInt(d);\r\n\r\n if (state.pavingModuleUser.isInPavingSupers === true && state.pavingModuleUser.isInGeneralPavingSupers === false) {\r\n state.pavingModule[currentDate].isDayBlocked = true;\r\n }\r\n else {\r\n const allowToModify =\r\n moment(currentDate).utc().format(\"YYYY.MM.DD\") <\r\n firstDayAllowedToModify.format(\"YYYY.MM.DD\")\r\n ? false\r\n : true;\r\n\r\n state.pavingModule[currentDate].isDayBlocked = !allowToModify;\r\n\r\n superIntendentPavingCalendarItems != null && superIntendentPavingCalendarItems.forEach(item => {\r\n if (item?.date === currentDate && item?.status === true) {\r\n state.pavingModule[currentDate].isDayBlocked = item?.status as boolean;\r\n }\r\n })\r\n }\r\n })\r\n },\r\n\r\n addBlockedJobNumbersAndForemansToPavingModule: (state, action: PayloadAction) => {\r\n const { pavingCalendarItems } = action.payload;\r\n\r\n if (pavingCalendarItems == null) return;\r\n\r\n Object.keys(state.pavingModule).forEach(d => {\r\n const key = parseInt(d);\r\n const superIntendentDatasFilteredByDay = pavingCalendarItems.filter(item => item?.date === parseInt(d));\r\n if (superIntendentDatasFilteredByDay?.length > 0) {\r\n state.pavingModule[key].jobNumbersBlocked = superIntendentDatasFilteredByDay?.[0]?.jobNumbersBlocked as number[];\r\n state.pavingModule[key].noWorkForForeman = superIntendentDatasFilteredByDay?.[0]?.noWorkForForemans as string[];\r\n } else {\r\n state.pavingModule[key].jobNumbersBlocked = [];\r\n state.pavingModule[key].noWorkForForeman = [];\r\n }\r\n })\r\n },\r\n movePavingItemToAnotherDate: (state, action: PayloadAction) => {\r\n const { date, newDate, jobNumber, locationIndex, shift } = action.payload;\r\n const itemsWithSameJN = state.pavingModule[newDate].items.filter(item => item?.jobNumber === jobNumber);\r\n // verificare daca pe new date avem item cu jobN === jobNumber && shift \r\n // daca au acelasi jn si shift sau jn === jn && shift !=\r\n\r\n const numberOfItemsOnDate = state.pavingModule[date].items.length;\r\n const numberOfItemsOnNewDate = state.pavingModule[newDate].items.length;\r\n\r\n for (let indexDate = 0; indexDate < numberOfItemsOnDate; indexDate++) {\r\n if (state.pavingModule[date].items[indexDate]?.jobNumber as number === jobNumber &&\r\n state.pavingModule[date].items[indexDate]?.shift as string === shift) {\r\n let itemToMove = state.pavingModule[date].items[indexDate];\r\n itemToMove!.date = newDate;\r\n itemToMove!.locationIndex = locationIndex;\r\n\r\n let foundItemWithSameJN = false;\r\n\r\n for (let indexNewDate = 0; indexNewDate < numberOfItemsOnNewDate; indexNewDate++) {\r\n if (state.pavingModule[newDate].items[indexNewDate]?.jobNumber as number === jobNumber) {\r\n const itemToBeOverwritten: SuperIntendentPavingCalendarItemInput = {\r\n bookTruckVendor: state.pavingModule[newDate].items[indexNewDate]?.bookTruckVendor,\r\n broker: state.pavingModule[newDate].items[indexNewDate]?.broker,\r\n crewMakeLab: state.pavingModule[newDate].items[indexNewDate]?.crewMakeLab,\r\n crewMakeOp: state.pavingModule[newDate].items[indexNewDate]?.crewMakeOp,\r\n date: state.pavingModule[newDate].items[indexNewDate]?.date,\r\n extraWork: state.pavingModule[newDate].items[indexNewDate]?.extraWork,\r\n grinder12ft: state.pavingModule[newDate].items[indexNewDate]?.grinder12ft,\r\n grinder4ft: state.pavingModule[newDate].items[indexNewDate]?.grinder4ft,\r\n grinder6ft: state.pavingModule[newDate].items[indexNewDate]?.grinder6ft,\r\n grinder7ft: state.pavingModule[newDate].items[indexNewDate]?.grinder7ft,\r\n jobName: state.pavingModule[newDate].items[indexNewDate]?.jobName,\r\n jobNumber: state.pavingModule[newDate].items[indexNewDate]?.jobNumber,\r\n jobMap: state.pavingModule[newDate].items[indexNewDate]?.jobMap,\r\n locationIndex: state.pavingModule[newDate].items[indexNewDate]?.locationIndex,\r\n material: state.pavingModule[newDate].items[indexNewDate]?.material,\r\n mixDesignApproval: state.pavingModule[newDate].items[indexNewDate]?.mixDesignApproval,\r\n mixSubmital: state.pavingModule[newDate].items[indexNewDate]?.mixSubmital,\r\n nrOfTrucks: state.pavingModule[newDate].items[indexNewDate]?.nrOfTrucks,\r\n pavingForeman: state.pavingModule[newDate].items[indexNewDate]?.pavingForeman,\r\n pavingSuperIntendent: state.pavingModule[newDate].items[indexNewDate]?.pavingSuperIntendent,\r\n plant: state.pavingModule[newDate].items[indexNewDate]?.plant,\r\n pmpe: state.pavingModule[newDate].items[indexNewDate]?.pmpe,\r\n rtsSupport: state.pavingModule[newDate].items[indexNewDate]?.rtsSupport,\r\n shift: state.pavingModule[newDate].items[indexNewDate]?.shift,\r\n superIntendent: state.pavingModule[newDate].items[indexNewDate]?.superIntendent,\r\n tonnage: state.pavingModule[newDate].items[indexNewDate]?.tonnage,\r\n tph: state.pavingModule[newDate].items[indexNewDate]?.tph,\r\n typeOfTrucks: state.pavingModule[newDate].items[indexNewDate]?.typeOfTrucks,\r\n uts: state.pavingModule[newDate].items[indexNewDate]?.uts\r\n }\r\n\r\n if (itemsWithSameJN.length === 1 && foundItemWithSameJN === false) {\r\n if (state.pavingModule[newDate].items[indexNewDate]?.shift as string === shift) {\r\n // overwrite item from new date with item from date\r\n //push to \"recycle\"\r\n state.pavingModule[newDate].itemsToRemove.push(itemToBeOverwritten);\r\n state.pavingModule[newDate].items.splice(indexNewDate, 1);\r\n state.pavingModule[newDate].items.push(itemToMove);\r\n }\r\n if (state.pavingModule[newDate].items[indexNewDate]?.shift as string !== shift) {\r\n state.pavingModule[newDate].items.push(itemToMove);\r\n }\r\n foundItemWithSameJN = true;\r\n }\r\n if (itemsWithSameJN.length === 2) {\r\n if (state.pavingModule[newDate].items[indexNewDate]?.shift as string === shift && foundItemWithSameJN === false) {\r\n //push to \"recycle\"\r\n state.pavingModule[newDate].itemsToRemove.push(itemToBeOverwritten);\r\n state.pavingModule[newDate].items.splice(indexNewDate, 1);\r\n state.pavingModule[newDate].items.push(itemToMove);\r\n foundItemWithSameJN = true;\r\n }\r\n }\r\n }\r\n }\r\n // in the new date, we don't have items with the same job number\r\n if (itemsWithSameJN.length === 0) {\r\n state.pavingModule[newDate].items.push(itemToMove);\r\n }\r\n state.pavingModule[date].items.splice(state.pavingModule[date].items.indexOf(itemToMove), 1);\r\n }\r\n }\r\n },\r\n updateBlockedForemanFromDay: (state, action: PayloadAction) => {\r\n const { unix, foremans } = action.payload;\r\n\r\n state.pavingModule[unix].noWorkForForeman = [];\r\n\r\n if (foremans?.length > 0) {\r\n foremans?.map(f => {\r\n if (!state.pavingModule[f.unix].noWorkForForeman?.includes(f.foremanName) && f.lock) {\r\n state.pavingModule[f.unix].noWorkForForeman?.push(f.foremanName);\r\n } else if (state.pavingModule[f.unix].noWorkForForeman?.includes(f.foremanName) && !f.lock) {\r\n let foremanIndex = state.pavingModule[f.unix].noWorkForForeman?.indexOf(f.foremanName);\r\n state.pavingModule[f.unix].noWorkForForeman?.splice(foremanIndex, 1);\r\n }\r\n })\r\n }\r\n },\r\n updateJobNumberStatusFromDay: (state, action: PayloadAction) => {\r\n const { jobNumber, unix, lock } = action.payload;\r\n\r\n if (!state.pavingModule[unix].jobNumbersBlocked?.includes(jobNumber) && lock) {\r\n state.pavingModule[unix].jobNumbersBlocked?.push(jobNumber);\r\n } else if (state.pavingModule[unix].jobNumbersBlocked?.includes(jobNumber) && !lock) {\r\n let jobNumberIndex = state.pavingModule[unix].jobNumbersBlocked?.indexOf(jobNumber);\r\n state.pavingModule[unix].jobNumbersBlocked?.splice(jobNumberIndex, 1);\r\n }\r\n },\r\n updateJobsNumbersRedBordered: (state, action: PayloadAction) => {\r\n const { jobNumber, unix, status } = action.payload;\r\n\r\n if (!state.pavingModule[unix].jobNumbersRedBordered?.includes(jobNumber) && status) {\r\n state.pavingModule[unix].jobNumbersRedBordered?.push(jobNumber);\r\n } else if (state.pavingModule[unix].jobNumbersRedBordered?.includes(jobNumber) && !status) {\r\n let jobNumberIndex = state.pavingModule[unix].jobNumbersRedBordered?.indexOf(jobNumber);\r\n state.pavingModule[unix].jobNumbersRedBordered?.splice(jobNumberIndex, 1);\r\n }\r\n },\r\n updateDayStatusForPavingModule: (state, action: PayloadAction) => {\r\n const { isDayBlocked, unix } = action.payload;\r\n\r\n if (state.pavingModule[unix] != null) {\r\n state.pavingModule[unix].isDayBlocked = isDayBlocked;\r\n }\r\n },\r\n changePavingItemForeman: (state, action: PayloadAction) => {\r\n const { date, jobNumber, locationIndex, pavingForeman, shift } = action.payload;\r\n\r\n if (state.pavingModule[date] != null) {\r\n state.pavingModule[date].items.forEach(item => {\r\n if (item?.jobNumber === jobNumber && item.locationIndex === locationIndex && item?.shift === shift) {\r\n item.pavingForeman = pavingForeman;\r\n }\r\n })\r\n }\r\n },\r\n addCustomCrews: (state, action: PayloadAction) => {\r\n const { customCrews } = action.payload;\r\n state.customCrews = [...customCrews].sort((a, b) => a?.crewDescription! < b?.crewDescription! ? -1 : 1);\r\n },\r\n addJobNumberInformation: (state, action: PayloadAction) => {\r\n state.jobNumberInformations = action.payload.jobNumberInformations;\r\n },\r\n addLocation: (state, action: PayloadAction) => {\r\n const locations = Object.keys(state.schedule.locations);\r\n // maximum locations numbers\r\n state.schedule.locations[locations.length + 1] = createLocation(state.start, action.payload, \"\");\r\n },\r\n changeDoubledShift: (state, action: PayloadAction) => {\r\n const { stateName, day, locationIndex } = action.payload;\r\n if (stateName === \"stateCopyDay\") {\r\n if (state.copyDay?.paving?.pavingResources?.[0]?.shift === \"D\") {\r\n state?.copyDay?.paving?.pavingResources?.forEach(pav => {\r\n if (pav != null)\r\n pav.shift = \"N\";\r\n });\r\n state?.copyDay?.trucking?.truckingResources?.forEach(trk => {\r\n if (trk != null)\r\n trk.shift = \"N\";\r\n });\r\n }\r\n else if (state.copyDay?.paving?.pavingResources?.[0]?.shift === \"N\") {\r\n state?.copyDay?.paving?.pavingResources?.forEach(pav => {\r\n if (pav != null)\r\n pav.shift = \"D\";\r\n });\r\n state?.copyDay?.trucking?.truckingResources?.forEach(trk => {\r\n if (trk != null)\r\n trk.shift = \"D\";\r\n });\r\n }\r\n else if (state.copyDay?.paving?.pavingResources?.[0]?.shift === \"D 2\") {\r\n state?.copyDay?.paving?.pavingResources?.forEach(pav => {\r\n if (pav != null)\r\n pav.shift = \"N 2\";\r\n });\r\n state?.copyDay?.trucking?.truckingResources?.forEach(trk => {\r\n if (trk != null)\r\n trk.shift = \"N 2\";\r\n });\r\n }\r\n else if (state.copyDay?.paving?.pavingResources?.[0]?.shift === \"N 2\") {\r\n state?.copyDay?.paving?.pavingResources?.forEach(pav => {\r\n if (pav != null)\r\n pav.shift = \"D 2\";\r\n });\r\n state?.copyDay?.trucking?.truckingResources?.forEach(trk => {\r\n if (trk != null)\r\n trk.shift = \"D 2\";\r\n });\r\n }\r\n }\r\n //change trk shift too\r\n if (stateName === \"stateCopyPaving\") {\r\n if (state.copyPaving?.[0]?.shift === \"D\") {\r\n state.copyPaving?.forEach(pav => {\r\n if (pav != null)\r\n pav.shift = \"N\";\r\n });\r\n state?.schedule?.locations?.[locationIndex]?.daysByUnix?.[day]?.trucking?.truckingResources?.forEach(trk => {\r\n if (trk != null)\r\n trk.shift = \"N\";\r\n })\r\n }\r\n else if (state.copyPaving?.[0]?.shift === \"N\") {\r\n state.copyPaving?.forEach(pav => {\r\n if (pav != null)\r\n pav.shift = \"D\";\r\n });\r\n state?.schedule?.locations?.[locationIndex]?.daysByUnix?.[day]?.trucking?.truckingResources?.forEach(trk => {\r\n if (trk != null)\r\n trk.shift = \"D\";\r\n })\r\n }\r\n else if (state.copyPaving?.[0]?.shift === \"D 2\") {\r\n state.copyPaving?.forEach(pav => {\r\n if (pav != null)\r\n pav.shift = \"N 2\";\r\n });\r\n state?.schedule?.locations?.[locationIndex]?.daysByUnix?.[day]?.trucking?.truckingResources?.forEach(trk => {\r\n if (trk != null)\r\n trk.shift = \"N 2\";\r\n })\r\n }\r\n else if (state.copyPaving?.[0]?.shift === \"N 2\") {\r\n state.copyPaving?.forEach(pav => {\r\n if (pav != null)\r\n pav.shift = \"D 2\";\r\n });\r\n state?.schedule?.locations?.[locationIndex]?.daysByUnix?.[day]?.trucking?.truckingResources?.forEach(trk => {\r\n if (trk != null)\r\n trk.shift = \"D 2\";\r\n })\r\n }\r\n }\r\n },\r\n clearDay: (state, action: PayloadAction) => {\r\n const { locationIndex, unix, lockedDays } = action.payload;\r\n const md = moment.utc(unix);\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] != null) {\r\n state.lastDay = state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix];\r\n if (lockedDays?.includes(unix)) {\r\n state.schedule.locations[locationIndex].daysByUnix[unix] = clearDayForLockedDays(state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix], md);\r\n } else {\r\n state.schedule.locations[locationIndex].daysByUnix[unix] = createDay(md);\r\n }\r\n\r\n state.schedule.locations[locationIndex].daysByUnix[unix].forecast = state.lastDay.forecast;\r\n\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n if (state.modifiedDayByLocation?.[locationIndex]?.[unix]?.length === 0 || state.modifiedDayByLocation?.[locationIndex]?.[unix] == null) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"clearDay\"];\r\n }\r\n\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"clearDay\")) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"clearDay\");\r\n }\r\n }\r\n },\r\n pasteDay: (state, action: PayloadAction) => {\r\n const { locationIndex, unix, lockedDays } = action.payload;\r\n const md = moment.utc(unix);\r\n\r\n if (state.copyDay == null) {\r\n /// paste trucking resource\r\n if (state.copyTrucking != null) {\r\n let copyTrucking = state.copyTrucking;\r\n\r\n copyTrucking = state.copyTrucking.filter(tr => tr?.operationType !== \"paving\");\r\n let pavingTrkResources = state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.trucking?.truckingResources?.filter(tr => tr?.operationType === \"paving\");\r\n\r\n state.schedule.locations[locationIndex].daysByUnix[unix].trucking.truckingResources = pavingTrkResources;\r\n\r\n copyTrucking.forEach(tr => {\r\n state.schedule.locations[locationIndex].daysByUnix[unix].trucking.truckingResources.push(tr);\r\n })\r\n\r\n const day = state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix];\r\n\r\n const truckingJobInfos = day.equip.jobInfos.filter(ji => ji?.resourceID === \"TRK\");\r\n\r\n const qtySumFromTruckingResourcesFromDay = day.trucking.truckingResources\r\n ?.map(tr => tr?.qty)\r\n ?.reduce((previousValue, currentValue) => previousValue! as number + currentValue! as number, 0) as number;\r\n\r\n if (truckingJobInfos.length > 0) {\r\n if (truckingJobInfos[0] == null) { return }\r\n truckingJobInfos[0].resourceQTY = qtySumFromTruckingResourcesFromDay\r\n return;\r\n }\r\n\r\n const jobInfos = day.equip.jobInfos;\r\n // we loop the for until 10, because we have only 10 dropdowns for every category: labor or equipment\r\n // we must check if all 10 dropdowns are filled before the user paste the resources\r\n for (let i = 0; i < 10; i++) {\r\n if (jobInfos[i] != null) { continue; }\r\n if (copyTrucking.length > 0) {\r\n jobInfos[i] = {\r\n pmpe: state.jobNumberInformations?.projectManager,\r\n jobName: state.jobNumberInformations?.jobName,\r\n date: unix,\r\n foreman: \" \",\r\n description: \" \",\r\n resourceID: \"TRK\",\r\n resourceType: \"Equipment\",\r\n additionalResourcesComments: \" \",\r\n searchGSI_JobNumber: state.start.jobNumber as number,\r\n locationIndex: locationIndex,\r\n areaManager: state.jobNumberInformations?.areaManager,\r\n resourceName: \"Trucking\",\r\n resourceQTY: qtySumFromTruckingResourcesFromDay\r\n } as JobInfo\r\n }\r\n break;\r\n }\r\n if (copyTrucking.length > 0) {\r\n state.schedule.locations[locationIndex].daysByUnix[unix].selectedResources[\"TRK\"] = true;\r\n }\r\n\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n if (state.modifiedDayByLocation?.[locationIndex]?.[unix]?.length === 0 || state.modifiedDayByLocation?.[locationIndex]?.[unix] == null) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"true\"];\r\n if (copyTrucking.length > 0) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"trucking\");\r\n }\r\n }\r\n\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"true\")) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"true\");\r\n }\r\n\r\n if (state.schedule.locations?.[locationIndex].daysByUnix[unix].trucking.truckingResources.length > 0) {\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"trucking\")) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"trucking\");\r\n }\r\n }\r\n\r\n if (state.modifiedDayByLocation[locationIndex][unix]?.includes(\"clearDay\")) {\r\n const index = state.modifiedDayByLocation[locationIndex][unix].indexOf(\"clearDay\")\r\n if (index !== -1) {\r\n state.modifiedDayByLocation[locationIndex][unix].splice(index, 1)\r\n }\r\n }\r\n /// end paste trucking\r\n }\r\n // start paste paving\r\n if (state.copyPaving != null && state.copyPavingJobInfo != null) {\r\n\r\n let copyPaving: Maybe[] | null = state.copyPaving;\r\n\r\n // we cannot add paving on a locked day or if the location index is higher than 4\r\n if (lockedDays?.includes(unix) || locationIndex > 4) {\r\n copyPaving = null;\r\n }\r\n\r\n if (copyPaving != null) {\r\n const _pavingRes = state.copyPaving;\r\n _pavingRes.forEach(pav => {\r\n pav!.addedDate = moment().utc().format(\"YYYY-MM-DD\");\r\n pav!.timeStamp = moment().utc().format();\r\n })\r\n state.schedule.locations[locationIndex].daysByUnix[unix].paving.pavingResources = _pavingRes;\r\n\r\n let nonPavingTrkResources = state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.trucking?.truckingResources?.filter(tr => tr?.operationType !== \"paving\");\r\n\r\n state.schedule.locations[locationIndex].daysByUnix[unix].trucking.truckingResources = nonPavingTrkResources;\r\n\r\n if (state.copyPavingTruckingResources != null && state.copyPavingTruckingResources.length > 0) {\r\n state.copyPavingTruckingResources.forEach(tr => {\r\n // change addedDate\r\n state.schedule.locations?.[locationIndex].daysByUnix[unix].trucking.truckingResources.push(tr);\r\n })\r\n }\r\n\r\n const day = state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix];\r\n const pavingJobInfos = day.labor.jobInfos.filter(ji => ji?.resourceID === \"PAV\");\r\n // if (pavingJobInfos.length > 0) {\r\n // if (pavingJobInfos[0] == null) { return }\r\n // pavingJobInfos[0].resourceQTY = state.copyPavingJobInfo?.resourceQTY;\r\n // }\r\n if (pavingJobInfos.length === 0) {\r\n const jobInfosLabor = day.labor.jobInfos;\r\n for (let i = 0; i < 10; i++) {\r\n if (jobInfosLabor[i] != null) { continue; }\r\n jobInfosLabor[i] = {\r\n pmpe: state.jobNumberInformations?.projectManager,\r\n jobName: state.jobNumberInformations?.jobName,\r\n date: unix,\r\n foreman: \" \",\r\n description: \" \",\r\n resourceID: \"PAV\",\r\n resourceType: \"Labor\",\r\n additionalResourcesComments: \" \",\r\n searchGSI_JobNumber: state.start.jobNumber as number,\r\n locationIndex: locationIndex,\r\n areaManager: state.jobNumberInformations?.areaManager,\r\n resourceName: \"Paving\",\r\n resourceQTY: state.copyPavingJobInfo?.resourceQTY,\r\n } as JobInfo\r\n break;\r\n }\r\n state.schedule.locations[locationIndex].daysByUnix[unix].selectedResources[\"PAV\"] = true;\r\n }\r\n\r\n if (state.copyPavingTruckingResources?.length !== 0) {\r\n const pavingTruckingJobInfos = day.equip.jobInfos.filter(ji => ji?.resourceID === \"TRK\");\r\n\r\n // for trucking resource from JobInfo table, we sum all the qty'es from resources inside\r\n const qtySumFromTruckingResourcesFromDay = state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.trucking?.truckingResources\r\n ?.map(tr => tr?.qty)\r\n ?.reduce((previousValue, currentValue) => previousValue! as number + currentValue! as number, 0) as number;\r\n\r\n if (pavingTruckingJobInfos.length > 0) {\r\n if (pavingTruckingJobInfos[0] == null) { return }\r\n pavingTruckingJobInfos[0].resourceQTY = qtySumFromTruckingResourcesFromDay;\r\n }\r\n else {\r\n const jobInfosEquip = day.equip.jobInfos;\r\n for (let i = 0; i < 10; i++) {\r\n if (jobInfosEquip[i] != null) { continue; }\r\n jobInfosEquip[i] = {\r\n pmpe: state.jobNumberInformations?.projectManager,\r\n jobName: state.jobNumberInformations?.jobName,\r\n date: unix,\r\n foreman: \" \",\r\n description: \" \",\r\n resourceID: \"TRK\",\r\n resourceType: \"Equipment\",\r\n additionalResourcesComments: \" \",\r\n searchGSI_JobNumber: state.start.jobNumber as number,\r\n locationIndex: locationIndex,\r\n areaManager: state.jobNumberInformations?.areaManager,\r\n resourceName: \"Trucking\",\r\n resourceQTY: qtySumFromTruckingResourcesFromDay,\r\n } as JobInfo\r\n break;\r\n }\r\n state.schedule.locations[locationIndex].daysByUnix[unix].selectedResources[\"TRK\"] = true;\r\n }\r\n }\r\n\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n if (state.modifiedDayByLocation?.[locationIndex]?.[unix]?.length === 0 || state.modifiedDayByLocation?.[locationIndex]?.[unix] == null) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"true\"];\r\n if (state.copyPaving?.length > 0) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"paving\");\r\n }\r\n\r\n if (state.copyPavingTruckingResources != null && state.copyPavingTruckingResources.length > 0) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"trucking\");\r\n }\r\n }\r\n\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"true\")) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"true\");\r\n }\r\n\r\n if (state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.trucking?.truckingResources?.length > 0) {\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"trucking\")) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"trucking\");\r\n }\r\n }\r\n\r\n if (state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.paving?.pavingResources?.length > 0) {\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"paving\")) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"paving\");\r\n }\r\n }\r\n\r\n if (state.modifiedDayByLocation[locationIndex][unix]?.includes(\"clearDay\")) {\r\n const index = state.modifiedDayByLocation[locationIndex][unix].indexOf(\"clearDay\")\r\n if (index !== -1) {\r\n state.modifiedDayByLocation[locationIndex][unix].splice(index, 1)\r\n }\r\n }\r\n // end paste paving\r\n }\r\n }\r\n return\r\n }\r\n\r\n // copy day has initial day state, after that depending if the day is locker or not we populate that variable\r\n // it's changing the object that is gonna be pasted, if the day is locked, we remove all the paving elements\r\n let copyDay = state.copyDay;\r\n const trkResFromLongRange = state.copyDay.trucking.truckingResources.filter(tr => tr?.updated === false);\r\n const pavResFromLongRange = state.copyDay.paving.pavingResources.filter(pav => pav?.updated === false);\r\n\r\n // if the day is locked and there are already on that day paving resources, we keep them\r\n if (lockedDays?.includes(unix) || locationIndex > 4 || (trkResFromLongRange.length > 0 || pavResFromLongRange.length > 0)) {\r\n\r\n const dayResourcesBeforePaste = state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix];\r\n\r\n // resources from copy day\r\n const truckingResourcesWithoutOpTypePaving = state.copyDay.trucking.truckingResources?.filter(tr => tr?.operationType !== \"paving\");\r\n const equipJobInfosWithoutTrk = state.copyDay?.equip.jobInfos.filter(ji => ji?.resourceID !== \"TRK\");\r\n const equipJobInfosTrk = state.copyDay?.equip.jobInfos.filter(ji => ji?.resourceID === \"TRK\")[0];\r\n const laborJobInfosWithoutPav = state.copyDay?.labor.jobInfos.filter(ji => ji?.resourceID !== \"PAV\");\r\n\r\n // resources from current day before pasting\r\n const truckingResourcesCurrentDayWithOpTypePav = dayResourcesBeforePaste.trucking.truckingResources.filter(tr => tr?.operationType === \"paving\");\r\n const pavingJobInfoCurrentDay = dayResourcesBeforePaste.labor.jobInfos.filter(ji => ji?.resourceID === \"PAV\")[0];\r\n const trkJobInfoCurrentDay = dayResourcesBeforePaste.equip.jobInfos.filter(ji => ji?.resourceID === \"TRK\")[0];\r\n\r\n state.schedule.locations[locationIndex].daysByUnix[unix].labor.jobInfos = [];\r\n\r\n if (pavingJobInfoCurrentDay != null) {\r\n state.schedule.locations[locationIndex].daysByUnix[unix].labor.jobInfos.push(pavingJobInfoCurrentDay);\r\n }\r\n\r\n laborJobInfosWithoutPav.forEach(l => {\r\n state.schedule.locations[locationIndex].daysByUnix[unix].labor.jobInfos.push(l);\r\n })\r\n\r\n state.schedule.locations[locationIndex].daysByUnix[unix].equip.jobInfos = [];\r\n state.schedule.locations[locationIndex].daysByUnix[unix].trucking.truckingResources = [];\r\n\r\n if (truckingResourcesCurrentDayWithOpTypePav.length > 0) {\r\n state.schedule.locations[locationIndex].daysByUnix[unix].equip.jobInfos.push(trkJobInfoCurrentDay);\r\n\r\n truckingResourcesCurrentDayWithOpTypePav.forEach(tr => {\r\n state.schedule.locations[locationIndex].daysByUnix[unix].trucking.truckingResources.push(tr);\r\n })\r\n } else {\r\n if (truckingResourcesWithoutOpTypePaving.length > 0) {\r\n state.schedule.locations[locationIndex].daysByUnix[unix].equip.jobInfos.push(equipJobInfosTrk);\r\n }\r\n }\r\n\r\n equipJobInfosWithoutTrk.forEach(e => {\r\n state.schedule.locations[locationIndex].daysByUnix[unix].equip.jobInfos.push(e);\r\n })\r\n\r\n truckingResourcesWithoutOpTypePaving.forEach(tr => {\r\n state.schedule.locations[locationIndex].daysByUnix[unix].trucking.truckingResources.push(tr);\r\n })\r\n\r\n const qtySumFromTruckingResourcesFromDay = state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.trucking?.truckingResources\r\n ?.map(tr => tr?.qty)\r\n ?.reduce((previousValue, currentValue) => previousValue! as number + currentValue! as number, 0) as number;\r\n\r\n state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.equip?.jobInfos?.forEach(ji => {\r\n if (ji?.resourceID === \"TRK\") {\r\n ji.resourceQTY = qtySumFromTruckingResourcesFromDay\r\n }\r\n })\r\n\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n if (state.modifiedDayByLocation?.[locationIndex]?.[unix]?.length === 0 || state.modifiedDayByLocation?.[locationIndex]?.[unix] == null) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"true\"];\r\n }\r\n\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"true\")) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"true\");\r\n }\r\n }\r\n //day is not locked or locIndex < 4\r\n else {\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] != null) {\r\n copyDay.date = md.format(\"MM/DD/YYYY\");\r\n copyDay.unix = md.valueOf();\r\n copyDay.day = md.weekday();\r\n copyDay.weekDay = md.format(\"ddd\")\r\n state.lastDay = state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix];\r\n let forecast = state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.forecast;\r\n state.schedule.locations[locationIndex].daysByUnix[unix] = copyDay\r\n state.schedule.locations[locationIndex].daysByUnix[unix].forecast = forecast;\r\n }\r\n\r\n const qtySumFromTruckingResourcesFromDay = state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.trucking?.truckingResources\r\n ?.map(tr => tr?.qty)\r\n ?.reduce((previousValue, currentValue) => previousValue! as number + currentValue! as number, 0) as number;\r\n\r\n state.schedule.locations[locationIndex].daysByUnix[unix].equip.jobInfos.forEach(ji => {\r\n if (ji?.resourceID === \"TRK\") {\r\n ji.resourceQTY = qtySumFromTruckingResourcesFromDay\r\n }\r\n })\r\n\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n if (state.modifiedDayByLocation?.[locationIndex]?.[unix]?.length === 0 || state.modifiedDayByLocation?.[locationIndex]?.[unix] == null) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"true\"];\r\n if (state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.trucking?.truckingResources?.length > 0) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"trucking\");\r\n }\r\n if (state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.paving?.pavingResources?.length > 0) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"paving\");\r\n }\r\n }\r\n\r\n if (state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.trucking?.truckingResources?.length > 0) {\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"trucking\")) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"trucking\");\r\n }\r\n }\r\n\r\n if (state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.paving?.pavingResources?.length > 0) {\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"paving\")) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"paving\");\r\n }\r\n }\r\n\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] != null) {\r\n if (state.modifiedDayByLocation[locationIndex][unix]?.includes(\"clearDay\")) {\r\n const index = state.modifiedDayByLocation[locationIndex][unix].indexOf(\"clearDay\")\r\n if (index !== -1) {\r\n state.modifiedDayByLocation[locationIndex][unix].splice(index, 1)\r\n }\r\n }\r\n\r\n if (!state.modifiedDayByLocation?.[locationIndex]?.[unix]?.includes(\"true\")) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"true\");\r\n }\r\n\r\n if (!state.modifiedDayByLocation?.[locationIndex]?.[unix]?.includes(\"trucking\")) {\r\n if (state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.trucking?.truckingResources?.length > 0) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"trucking\");\r\n }\r\n }\r\n\r\n if (!state.modifiedDayByLocation?.[locationIndex]?.[unix]?.includes(\"paving\")) {\r\n if (state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.paving?.pavingResources?.length > 0) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"paving\");\r\n }\r\n }\r\n }\r\n }\r\n },\r\n undoDay: (state, action: PayloadAction) => {\r\n const { locationIndex, unix } = action.payload;\r\n if (state.lastDay == null) { return }\r\n if (state.lastDay.unix !== unix) { return }\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] !== null) {\r\n state.schedule.locations[locationIndex].daysByUnix[unix] = state.lastDay\r\n }\r\n },\r\n copyDay: (state, action: PayloadAction) => {\r\n const { locationIndex, unix } = action.payload;\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] != null) {\r\n state.copyDay = state.schedule.locations[locationIndex].daysByUnix[unix];\r\n state.copyDay.locationIndex = locationIndex;\r\n state.copyTruckingJobInfo = null;\r\n state.copyPaving = null;\r\n }\r\n },\r\n copyTrucking: (state, action: PayloadAction) => {\r\n const { locationIndex, unix } = action.payload;\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix].trucking.truckingResources != null) {\r\n state.copyTrucking = state.schedule.locations[locationIndex].daysByUnix[unix].trucking.truckingResources;\r\n state.copyTruckingJobInfo = state.schedule.locations[locationIndex].daysByUnix[unix].equip.jobInfos.filter(ji => ji?.resourceID === \"TRK\")[0] as JobInfo;\r\n state.copyDay = null;\r\n state.copyPaving = null;\r\n }\r\n },\r\n copyPaving: (state, action: PayloadAction) => {\r\n const { locationIndex, unix } = action.payload;\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix].paving.pavingResources != null) {\r\n state.copyPaving = state.schedule.locations[locationIndex].daysByUnix[unix].paving.pavingResources;\r\n state.copyPavingJobInfo = state.schedule.locations[locationIndex].daysByUnix[unix].labor.jobInfos.filter(ji => ji?.resourceID === \"PAV\")[0] as JobInfo;\r\n state.copyPavingTruckingResourceJobInfo = state.schedule.locations[locationIndex].daysByUnix[unix].equip.jobInfos.filter(ji => ji?.resourceID === \"TRK\")[0] as JobInfo;\r\n state.copyPavingTruckingResources = state.schedule.locations[locationIndex].daysByUnix[unix].trucking.truckingResources.filter(tr => tr?.operationType === \"paving\");\r\n state.copyDay = null;\r\n state.copyTrucking = null;\r\n }\r\n },\r\n copyResourcesWithoutPav: (state, action: PayloadAction) => {\r\n const { locationIndex, unix } = action.payload;\r\n\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] != null) {\r\n const _laborWithoutPav = state.schedule.locations[locationIndex].daysByUnix[unix].labor.jobInfos.filter((ji) => ji?.resourceID !== \"PAV\");\r\n const _trkResourcesWithoutPav = state.schedule.locations[locationIndex].daysByUnix[unix].trucking.truckingResources.filter(tr => tr?.operationType !== \"paving\");\r\n const qtyTrkResourcesWithoutPav = _trkResourcesWithoutPav\r\n .map(tr => tr?.qty as number)\r\n .reduce((previousValue, currentValue) => previousValue! as number + currentValue! as number, 0) as number;\r\n\r\n let _trkNonPav = state.schedule.locations[locationIndex].daysByUnix[unix].equip.jobInfos.filter((ji) => ji?.resourceID !== \"TRK\")?.[0];\r\n _trkNonPav = _trkNonPav != null ? {\r\n ..._trkNonPav,\r\n resourceQTY: (_trkResourcesWithoutPav != null && _trkResourcesWithoutPav?.length === 0) ? 0 : qtyTrkResourcesWithoutPav as number\r\n }\r\n : null;\r\n\r\n const equip = state.schedule.locations[locationIndex].daysByUnix[unix].equip.jobInfos.filter((ji) => ji?.resourceID !== \"TRK\");\r\n\r\n const _allResources = [..._laborWithoutPav, ...equip, _trkNonPav];\r\n const _selectedResources: { [resourceID: string]: boolean } = {};\r\n\r\n _allResources?.forEach((r) => {\r\n if (r != null) {\r\n _selectedResources[r?.resourceID as string] = true;\r\n }\r\n })\r\n\r\n const _day: DayState = {\r\n ...state.schedule.locations[locationIndex].daysByUnix[unix],\r\n paving: {\r\n pavingResources: []\r\n },\r\n labor: {\r\n jobInfos: _laborWithoutPav\r\n },\r\n trucking: {\r\n truckingResources: _trkResourcesWithoutPav\r\n },\r\n equip: {\r\n jobInfos: [...equip, _trkNonPav]\r\n },\r\n selectedResources: _selectedResources\r\n };\r\n\r\n state.copyDay = _day;\r\n state.copyDay.locationIndex = locationIndex;\r\n state.copyTruckingJobInfo = null;\r\n state.copyPaving = null;\r\n }\r\n },\r\n JobChange: (state, action: PayloadAction) => {\r\n const { locationIndex, unix, indexPos, rc } = action.payload;\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] != null) {\r\n\r\n if (rc?.ResourceType === \"Labor\") {\r\n state.schedule.locations[locationIndex].daysByUnix[unix].labor.jobInfos[indexPos!] = {\r\n pmpe: state.jobNumberInformations?.projectManager,\r\n jobName: state.jobNumberInformations?.jobName,\r\n date: unix,\r\n additionalResourcesComments: \" \",\r\n foreman: \" \",\r\n description: \" \",\r\n resourceID: rc?.ResourceID,\r\n superIntendent: state.jobNumberInformations?.superIntendentName?.length === 0 ? \" \" : state.jobNumberInformations?.superIntendentName,\r\n resourceType: rc?.ResourceType,\r\n searchGSI_JobNumber: state.start.jobNumber as number,\r\n locationIndex: locationIndex,\r\n areaManager: state.jobNumberInformations?.areaManager,\r\n resourceName: rc?.ResourceDescription,\r\n pavingForeman: \" \",\r\n pavingSuperIntendent: \" \",\r\n }\r\n }\r\n\r\n if (rc?.ResourceType === \"Equipment\") {\r\n state.schedule.locations[locationIndex].daysByUnix[unix].equip.jobInfos[indexPos!] = {\r\n pmpe: state.jobNumberInformations?.projectManager,\r\n jobName: state.jobNumberInformations?.jobName,\r\n date: unix,\r\n foreman: \" \",\r\n description: \" \",\r\n resourceID: rc?.ResourceID,\r\n superIntendent: state.jobNumberInformations?.superIntendentName?.length === 0 ? \" \" : state.jobNumberInformations?.superIntendentName,\r\n resourceType: rc?.ResourceType,\r\n additionalResourcesComments: \" \",\r\n searchGSI_JobNumber: state.start.jobNumber as number,\r\n locationIndex: locationIndex,\r\n areaManager: state.jobNumberInformations?.areaManager,\r\n resourceName: rc?.ResourceDescription,\r\n pavingForeman: \" \",\r\n pavingSuperIntendent: \" \",\r\n }\r\n }\r\n\r\n state.schedule.locations[locationIndex].daysByUnix[unix].selectedResources[rc?.ResourceID as string] = true;\r\n\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n if (state.modifiedDayByLocation[locationIndex][unix].includes(\"true\")) {\r\n return;\r\n }\r\n\r\n if (state.modifiedDayByLocation?.[locationIndex]?.[unix]?.length === 0) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"true\"];\r\n }\r\n\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"true\");\r\n }\r\n },\r\n RemoveJob: (state, action: PayloadAction) => {\r\n const { locationIndex, indexPos, unix, resourceType, resourceID } = action.payload;\r\n const rt = resourceType === \"equipment\" ? \"equip\" : \"labor\";\r\n delete state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.[rt]?.jobInfos?.[indexPos!];\r\n delete state.schedule.locations[locationIndex]?.daysByUnix[unix]?.selectedResources?.[resourceID as string];\r\n\r\n if (state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix] != null) {\r\n if (Object.values(state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.[rt]?.jobInfos).length === 0) {\r\n state.schedule.locations[locationIndex].daysByUnix[unix][rt].jobInfos = [];\r\n }\r\n }\r\n\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n if (state.modifiedDayByLocation?.[locationIndex]?.[unix]?.length === 0 || state.modifiedDayByLocation?.[locationIndex]?.[unix] == null) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"true\"];\r\n }\r\n\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"true\")) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"true\");\r\n }\r\n },\r\n JobQTY: (state, action: PayloadAction) => {\r\n const { locationIndex, unix, indexPos, qty, resourceType } = action.payload;\r\n\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] == null) { return }\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n if (state.modifiedDayByLocation?.[locationIndex]?.[unix]?.length === 0 || state.modifiedDayByLocation?.[locationIndex]?.[unix] == null) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"true\"];\r\n }\r\n\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"true\")) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"true\");\r\n }\r\n\r\n if (resourceType === \"labor\") {\r\n const job = state.schedule.locations[locationIndex].daysByUnix[unix].labor.jobInfos[indexPos!]\r\n if (job == null) { return }\r\n if (qty != null) {\r\n if (qty === \"\") {\r\n job.resourceQTY = null\r\n return\r\n }\r\n job.resourceQTY = qty as number\r\n }\r\n return\r\n }\r\n const job = state.schedule.locations[locationIndex].daysByUnix[unix].equip.jobInfos[indexPos!]\r\n if (job == null) { return }\r\n if (qty != null) {\r\n job.resourceQTY = qty as number\r\n }\r\n },\r\n\r\n addPavingFromPavingManagement: (state, action: PayloadAction) => {\r\n const { locationIndex, jobInfoResources, jobInfoToUpdate, unix } = action.payload;\r\n\r\n if (state.schedule?.locations?.[locationIndex] == null) { return }\r\n\r\n if (jobInfoResources != null && jobInfoResources.length > 0) {\r\n const _resources: Maybe[] = [];\r\n jobInfoResources.forEach(ji => {\r\n _resources.push(ji);\r\n })\r\n\r\n const resourcesForTrk = _resources.filter(ji => ji?.resourceID === \"TRK\");\r\n const resourcesForPav = _resources.filter(ji => ji?.resourceID === \"PAV\");\r\n const resourcesForACP = _resources.filter(ji => ji?.resourceID === \"ACP\");\r\n\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] == null) { return }\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n if (state.modifiedDayByLocation?.[locationIndex]?.[unix]?.length === 0 || state.modifiedDayByLocation?.[locationIndex]?.[unix] == null) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"true\"];\r\n }\r\n\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"true\")) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"true\");\r\n }\r\n\r\n if (resourcesForPav.length > 0) {\r\n resourcesForPav.forEach(ji => {\r\n if (ji != null) {\r\n if (state.schedule.locations?.[ji.locationIndex!].daysByUnix[ji.date] != null) {\r\n const _includesPaving = state.schedule.locations?.[ji.locationIndex!].daysByUnix[ji.date].labor.jobInfos\r\n ?.map(j => j?.resourceID)\r\n ?.includes(\"PAV\");\r\n\r\n if (_includesPaving === false) {\r\n state.schedule.locations?.[ji.locationIndex!].daysByUnix[ji.date].labor.jobInfos.push(ji);\r\n\r\n if (state.schedule.locations?.[ji.locationIndex!]?.daysByUnix?.[ji.date]?.selectedResources != null) {\r\n state.schedule.locations[(ji?.locationIndex ?? 1)].daysByUnix[ji?.date ?? 0].selectedResources[ji?.resourceID as string] = true;\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }\r\n if (resourcesForACP.length > 0) {\r\n resourcesForACP.forEach(ji => {\r\n if (ji != null) {\r\n if (state.schedule.locations?.[ji.locationIndex!].daysByUnix[ji.date] != null) {\r\n const _includesAcp = state.schedule.locations?.[ji.locationIndex!].daysByUnix[ji.date].labor.jobInfos\r\n ?.map(j => j?.resourceID)\r\n ?.includes(\"ACP\");\r\n\r\n if (_includesAcp === false) {\r\n state.schedule.locations?.[ji.locationIndex!].daysByUnix[ji.date].labor.jobInfos.push(ji);\r\n\r\n if (state.schedule.locations?.[ji.locationIndex!]?.daysByUnix?.[ji.date]?.selectedResources != null) {\r\n state.schedule.locations[(ji?.locationIndex ?? 1)].daysByUnix[ji?.date ?? 0].selectedResources[ji?.resourceID as string] = true;\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }\r\n if (resourcesForTrk.length > 0) {\r\n resourcesForTrk?.forEach(ji => {\r\n if (ji != null) {\r\n if (state.schedule.locations?.[ji.locationIndex!].daysByUnix[ji.date] != null) {\r\n const _includesTrucking = state.schedule.locations?.[ji.locationIndex!].daysByUnix[ji.date].equip.jobInfos\r\n ?.map(j => j?.resourceID)\r\n ?.includes(\"TRK\");\r\n\r\n if (_includesTrucking === false) {\r\n state.schedule.locations?.[ji.locationIndex!].daysByUnix[ji.date].equip.jobInfos.push(ji);\r\n\r\n if (state.schedule.locations?.[ji.locationIndex!]?.daysByUnix?.[ji.date]?.selectedResources != null) {\r\n state.schedule.locations[(ji?.locationIndex ?? 1)].daysByUnix[ji?.date ?? 0].selectedResources[ji?.resourceID as string] = true;\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n if (jobInfoToUpdate != null && jobInfoToUpdate.length > 0) {\r\n jobInfoToUpdate.forEach(ji => {\r\n if (ji != null) {\r\n if (state.schedule.locations?.[ji.locationIndex!].daysByUnix[ji.date] != null) {\r\n const _itemToUpdate = state.schedule.locations?.[ji.locationIndex!].daysByUnix[ji.date].equip.jobInfos.filter(ji => ji?.resourceID === \"TRK\");\r\n if (_itemToUpdate != null && _itemToUpdate.length > 0) {\r\n _itemToUpdate[0]!.resourceQTY = ji.resourceQTY\r\n }\r\n }\r\n }\r\n })\r\n }\r\n },\r\n\r\n addPavingFromPavingCalendarResources: (state, action: PayloadAction) => {\r\n const { locationIndex, pavingResources, jobInfoResources, truckingResources, jobInfoToUpdate } = action.payload;\r\n\r\n if (state.schedule?.locations?.[locationIndex] == null) { return }\r\n\r\n if (jobInfoResources != null && jobInfoResources.length > 0) {\r\n const _resources: Maybe[] = [];\r\n jobInfoResources.forEach(ji => {\r\n _resources.push(ji);\r\n })\r\n\r\n const resourcesForTrk = _resources.filter(ji => ji?.resourceID === \"TRK\");\r\n const resourcesForPav = _resources.filter(ji => ji?.resourceID === \"PAV\");\r\n const resourcesForACP = _resources.filter(ji => ji?.resourceID === \"ACP\");\r\n\r\n if (resourcesForPav.length > 0) {\r\n resourcesForPav.forEach(ji => {\r\n if (ji != null) {\r\n if (state.schedule.locations?.[ji.locationIndex!].daysByUnix[ji.date] != null) {\r\n const _includesPaving = state.schedule.locations?.[ji.locationIndex!].daysByUnix[ji.date].labor.jobInfos\r\n ?.map(j => j?.resourceID)\r\n ?.includes(\"PAV\");\r\n\r\n if (_includesPaving === false) {\r\n state.schedule.locations?.[ji.locationIndex!].daysByUnix[ji.date].labor.jobInfos.push(ji);\r\n\r\n if (state.schedule.locations?.[ji.locationIndex!]?.daysByUnix?.[ji.date]?.selectedResources != null) {\r\n state.schedule.locations[(ji?.locationIndex ?? 1)].daysByUnix[ji?.date ?? 0].selectedResources[ji?.resourceID as string] = true;\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }\r\n if (resourcesForACP.length > 0) {\r\n resourcesForACP.forEach(ji => {\r\n if (ji != null) {\r\n if (state.schedule.locations?.[ji.locationIndex!].daysByUnix[ji.date] != null) {\r\n const _includesAcp = state.schedule.locations?.[ji.locationIndex!]?.daysByUnix[ji.date]?.labor?.jobInfos\r\n ?.map(j => j?.resourceID)\r\n ?.includes(\"ACP\");\r\n\r\n if (_includesAcp === false) {\r\n state.schedule.locations?.[ji.locationIndex!]?.daysByUnix?.[ji.date]?.labor?.jobInfos?.push(ji);\r\n\r\n if (state.schedule.locations?.[ji.locationIndex!]?.daysByUnix?.[ji.date]?.selectedResources != null) {\r\n state.schedule.locations[(ji?.locationIndex ?? 1)].daysByUnix[ji?.date ?? 0].selectedResources[ji?.resourceID as string] = true;\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }\r\n if (resourcesForTrk.length > 0) {\r\n resourcesForTrk?.forEach(ji => {\r\n if (ji != null) {\r\n if (state.schedule.locations?.[ji.locationIndex!]?.daysByUnix?.[ji.date] != null) {\r\n const _includesTrucking = state.schedule.locations?.[ji.locationIndex!]?.daysByUnix?.[ji.date]?.equip?.jobInfos\r\n ?.map(j => j?.resourceID)\r\n ?.includes(\"TRK\");\r\n\r\n if (_includesTrucking === false) {\r\n state.schedule.locations?.[ji.locationIndex!].daysByUnix[ji.date].equip.jobInfos.push(ji);\r\n\r\n if (state.schedule.locations?.[ji.locationIndex!]?.daysByUnix?.[ji.date]?.selectedResources != null) {\r\n state.schedule.locations[(ji?.locationIndex ?? 1)].daysByUnix[ji?.date ?? 0].selectedResources[ji?.resourceID as string] = true;\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }\r\n }\r\n if (pavingResources != null && pavingResources.length > 0) {\r\n const _resources: Maybe[] = [];\r\n pavingResources.forEach(pav => {\r\n _resources.push(pav);\r\n })\r\n\r\n _resources.forEach(pav => {\r\n if (pav != null) {\r\n if (state.schedule.locations?.[pav.locationIndex!]?.daysByUnix?.[pav.date] != null) {\r\n const _hasPavingResources = state.schedule.locations?.[pav.locationIndex!]?.daysByUnix[pav.date].paving.pavingResources.length > 0;\r\n if (_hasPavingResources === false) {\r\n state.schedule.locations?.[pav.locationIndex!]?.daysByUnix?.[pav.date!]?.paving?.pavingResources?.push(pav);\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n if (truckingResources != null && truckingResources.length > 0) {\r\n const _resources: Maybe[] = [];\r\n truckingResources.forEach(trk => {\r\n _resources.push(trk);\r\n })\r\n\r\n _resources.forEach(trk => {\r\n if (trk != null) {\r\n if (state.schedule.locations?.[trk.locationIndex!]?.daysByUnix?.[trk.date] != null) {\r\n const _hasPavingResources = state.schedule.locations?.[trk.locationIndex!]?.daysByUnix?.[trk.date]?.trucking?.truckingResources?.filter(tr => tr?.operationType === \"paving\").length > 0;\r\n\r\n if (_hasPavingResources === false) {\r\n state.schedule.locations?.[trk.locationIndex!]?.daysByUnix?.[trk.date!]?.trucking?.truckingResources?.push(trk);\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n if (jobInfoToUpdate != null && jobInfoToUpdate.length > 0) {\r\n jobInfoToUpdate.forEach(ji => {\r\n if (ji != null) {\r\n if (state.schedule.locations?.[ji.locationIndex!].daysByUnix[ji.date] != null) {\r\n const _itemToUpdate = state.schedule.locations?.[ji.locationIndex!].daysByUnix[ji.date].equip.jobInfos.filter(ji => ji?.resourceID === \"TRK\");\r\n if (_itemToUpdate != null && _itemToUpdate.length > 0) {\r\n _itemToUpdate[0]!.resourceQTY = ji.resourceQTY\r\n }\r\n }\r\n }\r\n })\r\n }\r\n },\r\n deleteResourcesFromJIAndTrucking: (state, action: PayloadAction) => {\r\n const { truckingResources, unix, locationIndex } = action.payload;\r\n if (truckingResources != null && truckingResources?.length > 0) {\r\n truckingResources.forEach((trToDelete, i) => {\r\n if (state.schedule?.locations?.[trToDelete.locationIndex!] == null) { return }\r\n if (state.schedule?.locations?.[trToDelete.locationIndex!].daysByUnix[unix] == null) { return }\r\n\r\n state.schedule?.locations?.[trToDelete.locationIndex!].daysByUnix[unix].trucking.truckingResources.forEach((tr, index) => {\r\n if (tr?.operationType === trToDelete?.operationType) {\r\n delete state.schedule?.locations?.[trToDelete.locationIndex!].daysByUnix[unix].trucking.truckingResources[index];\r\n }\r\n })\r\n\r\n state.schedule?.locations?.[trToDelete.locationIndex!].daysByUnix[unix].labor.jobInfos.forEach((ji, index) => {\r\n if (ji != null && (ji?.resourceID === \"PAV\" || ji?.resourceID === \"ACP\")) {\r\n delete state.schedule?.locations?.[trToDelete.locationIndex!].daysByUnix[unix].labor.jobInfos[index];\r\n delete state.schedule?.locations?.[trToDelete.locationIndex!].daysByUnix[unix].selectedResources[ji?.resourceID];\r\n }\r\n })\r\n\r\n state.schedule?.locations?.[trToDelete.locationIndex!].daysByUnix[unix].paving.pavingResources?.forEach((pav, index) => {\r\n if (pav != null) {\r\n delete state.schedule?.locations?.[trToDelete.locationIndex!].daysByUnix[unix].paving.pavingResources[index];\r\n }\r\n })\r\n })\r\n }\r\n if (truckingResources != null && truckingResources.length > 0) {\r\n for (let i = 0; i < truckingResources?.length; i++) {\r\n const path = state.schedule?.locations?.[truckingResources[i].locationIndex!].daysByUnix[unix];\r\n if (path.trucking.truckingResources.length > 0) {\r\n const resourcesWithoutPaving = path.trucking.truckingResources.filter(tr => tr?.operationType !== \"paving\");\r\n\r\n if (resourcesWithoutPaving.length > 0) {\r\n let qty = resourcesWithoutPaving\r\n ?.map(t => t?.qty)\r\n ?.reduce((previousValue, currentValue) => previousValue! as number + currentValue! as number, 0) as number;\r\n let trkResource = state.schedule?.locations?.[truckingResources[i].locationIndex!].daysByUnix[unix].equip.jobInfos.filter(tr => tr?.resourceID === \"TRK\")[0];\r\n trkResource!.resourceQTY! = qty;\r\n }\r\n else {\r\n state.schedule?.locations?.[truckingResources[i].locationIndex!].daysByUnix[unix].equip.jobInfos.forEach((ji, index) => {\r\n if (ji != null && ji?.resourceID === \"TRK\") {\r\n delete state.schedule?.locations?.[truckingResources[i].locationIndex!].daysByUnix[unix].equip.jobInfos[index];\r\n delete state.schedule?.locations?.[truckingResources[i].locationIndex!].daysByUnix[unix].selectedResources[ji?.resourceID];\r\n }\r\n })\r\n }\r\n }\r\n else {\r\n state.schedule?.locations?.[truckingResources[i].locationIndex!].daysByUnix[unix].equip.jobInfos.forEach((ji, index) => {\r\n if (ji != null && ji?.resourceID === \"TRK\") {\r\n delete state.schedule?.locations?.[truckingResources[i].locationIndex!].daysByUnix[unix].equip.jobInfos[index];\r\n delete state.schedule?.locations?.[truckingResources[i].locationIndex!].daysByUnix[unix].selectedResources[ji?.resourceID];\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n if (state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix] != null) {\r\n if (Object.values(state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.labor?.jobInfos).length === 0) {\r\n state.schedule.locations[locationIndex].daysByUnix[unix].labor.jobInfos = [];\r\n }\r\n if (Object.values(state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.equip?.jobInfos).length === 0) {\r\n state.schedule.locations[locationIndex].daysByUnix[unix].equip.jobInfos = [];\r\n }\r\n if (Object.values(state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.paving.pavingResources).length === 0) {\r\n state.schedule.locations[locationIndex].daysByUnix[unix].paving.pavingResources = [];\r\n }\r\n if (Object.values(state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]?.trucking.truckingResources).length === 0) {\r\n state.schedule.locations[locationIndex].daysByUnix[unix].trucking.truckingResources = [];\r\n }\r\n }\r\n },\r\n\r\n addResourcesToDay: (state, action: PayloadAction) => {\r\n const { locationIndex, unix, resources } = action.payload;\r\n\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n if (state.modifiedDayByLocation[locationIndex][unix]?.length === 0 || state.modifiedDayByLocation?.[locationIndex]?.[unix] == null) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"true\"];\r\n }\r\n\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"true\")) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"true\");\r\n }\r\n\r\n resources?.forEach(resource => {\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] == null) {\r\n return;\r\n }\r\n\r\n state.schedule.locations[locationIndex].daysByUnix[unix].selectedResources[resource?.resourceID as string] = true;\r\n\r\n if (resource?.resourceType === \"Labor\") {\r\n state.schedule.locations?.[locationIndex].daysByUnix[unix].labor.jobInfos.push({\r\n pmpe: state.jobNumberInformations?.projectManager,\r\n jobName: state.jobNumberInformations?.jobName,\r\n date: unix,\r\n foreman: \" \",\r\n description: \" \",\r\n resourceID: resource.resourceID,\r\n superIntendent: state.jobNumberInformations?.superIntendentName?.length === 0 ? \" \" : state.jobNumberInformations?.superIntendentName,\r\n resourceType: resource.resourceType,\r\n additionalResourcesComments: \" \",\r\n searchGSI_JobNumber: state.start.jobNumber as number,\r\n locationIndex: locationIndex,\r\n areaManager: state.jobNumberInformations?.areaManager,\r\n resourceName: resource.resourceDescription,\r\n resourceQTY: resource.QTYNeeded,\r\n } as JobInfo)\r\n }\r\n\r\n if (resource?.resourceType === \"Equipment\") {\r\n state.schedule.locations?.[locationIndex].daysByUnix[unix].equip.jobInfos.push({\r\n pmpe: state.jobNumberInformations?.projectManager,\r\n jobName: state.jobNumberInformations?.jobName,\r\n date: unix,\r\n foreman: \" \",\r\n description: \" \",\r\n resourceID: resource.resourceID,\r\n superIntendent: state.jobNumberInformations?.superIntendentName?.length === 0 ? \" \" : state.jobNumberInformations?.superIntendentName,\r\n resourceType: resource.resourceType,\r\n additionalResourcesComments: \" \",\r\n searchGSI_JobNumber: state.start.jobNumber as number,\r\n locationIndex: locationIndex,\r\n areaManager: state.jobNumberInformations?.areaManager,\r\n resourceName: resource.resourceDescription,\r\n resourceQTY: resource.QTYNeeded,\r\n } as JobInfo)\r\n }\r\n })\r\n },\r\n addDescriptionToDay: (state, action: PayloadAction) => {\r\n const { locationIndex, unix, description } = action.payload;\r\n\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] == null) {\r\n return;\r\n }\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n if (state.modifiedDayByLocation[locationIndex][unix]?.length === 0 || state.modifiedDayByLocation?.[locationIndex]?.[unix] == null) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"true\"];\r\n }\r\n\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"true\")) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"true\");\r\n }\r\n\r\n state.schedule.locations[locationIndex].daysByUnix[unix].description = description;\r\n },\r\n locationInfoChange: (state, action: PayloadAction) => {\r\n const { locationIndex, activityDescription, location } = action.payload;\r\n if (state.schedule?.locations?.[locationIndex] == null) { return }\r\n if (state.modifiedLocation[locationIndex] == null) {\r\n state.modifiedLocation[locationIndex] = locationIndex\r\n }\r\n\r\n if (state.modifiedLocationInfo[locationIndex] == null) {\r\n state.modifiedLocationInfo[locationIndex] = {};\r\n }\r\n\r\n if (activityDescription != null) {\r\n state.schedule.locations[locationIndex].activityDescription = activityDescription;\r\n state.modifiedLocationInfo[locationIndex].activityDescription = activityDescription;\r\n return\r\n }\r\n if (location != null) {\r\n state.schedule.locations[locationIndex].name = location;\r\n state.modifiedLocationInfo[locationIndex].locationName = location;\r\n return\r\n }\r\n },\r\n addAdditionalResourceCommentsToDay: (state, action: PayloadAction) => {\r\n const { locationIndex, unix, additionalResourceComments } = action.payload;\r\n\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] == null) {\r\n return;\r\n }\r\n\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n if (state.modifiedDayByLocation[locationIndex][unix]?.length === 0 || state.modifiedDayByLocation?.[locationIndex]?.[unix] == null) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"true\"];\r\n }\r\n\r\n if (!state.modifiedDayByLocation[locationIndex][unix].includes(\"true\")) {\r\n state.modifiedDayByLocation?.[locationIndex]?.[unix]?.push(\"true\");\r\n }\r\n\r\n state.schedule.locations[locationIndex].daysByUnix[unix].additionalResourceComments = additionalResourceComments;\r\n },\r\n addTruckingResourcesToDay: (state, action: PayloadAction) => {\r\n const { locationIndex, unix, truckingResources } = action.payload;\r\n\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] == null) {\r\n return;\r\n }\r\n state.schedule.locations[locationIndex].daysByUnix[unix].trucking.truckingResources = truckingResources;\r\n\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n if (state.modifiedDayByLocation?.[locationIndex]?.[unix]?.length === 0 || state.modifiedDayByLocation?.[locationIndex]?.[unix] == null) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"trucking\"];\r\n }\r\n\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"trucking\")) {\r\n state.modifiedDayByLocation[locationIndex][unix].push(\"trucking\");\r\n }\r\n },\r\n\r\n addTruckingResourcesToDayFromPavingManagement: (state, action: PayloadAction) => {\r\n const { locationIndex, unix, truckingResources } = action.payload;\r\n\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] == null) {\r\n return;\r\n }\r\n\r\n let nonPavingRes = state.schedule.locations?.[locationIndex]?.daysByUnix[unix].trucking.truckingResources.filter(tr => tr?.operationType !== \"paving\")\r\n\r\n state.schedule.locations[locationIndex].daysByUnix[unix].trucking.truckingResources = [];\r\n\r\n nonPavingRes.forEach(tr => {\r\n state.schedule.locations?.[locationIndex].daysByUnix[unix].trucking.truckingResources.push(tr);\r\n })\r\n\r\n truckingResources.forEach(tr => {\r\n state.schedule.locations?.[locationIndex].daysByUnix[unix].trucking.truckingResources.push(tr);\r\n })\r\n\r\n let qtySum = state.schedule.locations?.[locationIndex].daysByUnix[unix].trucking.truckingResources\r\n .map(tr => tr?.qty)\r\n .reduce((previousValue, currentValue) => previousValue! as number + currentValue! as number, 0) as number;\r\n\r\n const day = state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]\r\n const truckingJobInfos = day.equip.jobInfos.filter(ji => ji?.resourceID === \"TRK\")\r\n if (truckingJobInfos != null && truckingJobInfos.length > 0) {\r\n if (truckingJobInfos[0] !== null) {\r\n truckingJobInfos[0].resourceQTY = qtySum;\r\n }\r\n }\r\n\r\n state.schedule.locations[locationIndex].daysByUnix[unix].selectedResources[\"TRK\"] = true;\r\n\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n if (state.modifiedDayByLocation?.[locationIndex]?.[unix]?.length === 0 || state.modifiedDayByLocation?.[locationIndex]?.[unix] == null) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"trucking\"];\r\n }\r\n\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"trucking\")) {\r\n state.modifiedDayByLocation[locationIndex][unix].push(\"trucking\");\r\n }\r\n\r\n },\r\n removeTruckingResourcesToDay: (state, action: PayloadAction) => {\r\n const { locationIndex, unix } = action.payload;\r\n\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] == null) {\r\n return;\r\n }\r\n\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n state.schedule.locations[locationIndex].daysByUnix[unix].trucking.truckingResources = [];\r\n\r\n if (state.modifiedDayByLocation?.[locationIndex]?.[unix]?.length === 0 || state.modifiedDayByLocation?.[locationIndex]?.[unix] == null) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"trucking\"];\r\n }\r\n\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"trucking\")) {\r\n state.modifiedDayByLocation[locationIndex][unix].push(\"trucking\");\r\n }\r\n },\r\n\r\n removeNonPavingTruckingResourcesToDay: (state, action: PayloadAction) => {\r\n const { locationIndex, unix } = action.payload;\r\n\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] == null) {\r\n return;\r\n }\r\n\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n let pavTrkRes = state.schedule.locations?.[locationIndex]?.daysByUnix[unix].trucking.truckingResources.filter(tr => tr?.operationType === \"paving\");\r\n\r\n state.schedule.locations[locationIndex].daysByUnix[unix].trucking.truckingResources = [];\r\n\r\n pavTrkRes.forEach(p => {\r\n state.schedule.locations?.[locationIndex].daysByUnix[unix].trucking.truckingResources.push(p);\r\n })\r\n\r\n let qtySum = state.schedule.locations?.[locationIndex].daysByUnix[unix].trucking.truckingResources\r\n .map(tr => tr?.qty)\r\n .reduce((previousValue, currentValue) => previousValue! as number + currentValue! as number, 0) as number;\r\n\r\n const day = state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]\r\n const truckingJobInfos = day.equip.jobInfos.filter(ji => ji?.resourceID === \"TRK\")\r\n if (truckingJobInfos != null && truckingJobInfos.length > 0) {\r\n if (truckingJobInfos[0] !== null) {\r\n truckingJobInfos[0].resourceQTY = qtySum;\r\n }\r\n }\r\n\r\n if (state.modifiedDayByLocation?.[locationIndex]?.[unix]?.length === 0 || state.modifiedDayByLocation?.[locationIndex]?.[unix] == null) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"trucking\"];\r\n }\r\n\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"trucking\")) {\r\n state.modifiedDayByLocation[locationIndex][unix].push(\"trucking\");\r\n }\r\n },\r\n\r\n\r\n removePavingTruckingResourcesToDay: (state, action: PayloadAction) => {\r\n const { locationIndex, unix } = action.payload;\r\n\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] == null) {\r\n return;\r\n }\r\n\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n let nonPavTrkRes = state.schedule.locations?.[locationIndex].daysByUnix[unix].trucking.truckingResources.filter(tr => tr?.operationType !== \"paving\");\r\n\r\n state.schedule.locations[locationIndex].daysByUnix[unix].trucking.truckingResources = [];\r\n\r\n nonPavTrkRes.forEach(p => {\r\n state.schedule.locations?.[locationIndex].daysByUnix[unix].trucking.truckingResources.push(p);\r\n })\r\n\r\n let qtySum = state.schedule.locations?.[locationIndex].daysByUnix[unix].trucking.truckingResources\r\n .map(tr => tr?.qty)\r\n .reduce((previousValue, currentValue) => previousValue! as number + currentValue! as number, 0) as number;\r\n\r\n const day = state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]\r\n const truckingJobInfos = day.equip.jobInfos.filter(ji => ji?.resourceID === \"TRK\")\r\n if (truckingJobInfos != null && truckingJobInfos.length > 0) {\r\n if (truckingJobInfos[0] !== null) {\r\n truckingJobInfos[0].resourceQTY = qtySum;\r\n }\r\n }\r\n\r\n if (qtySum === 0) {\r\n let nonTrkRes = state.schedule.locations?.[locationIndex].daysByUnix[unix].equip.jobInfos.filter(j => j?.resourceID !== \"TRK\");\r\n state.schedule.locations[locationIndex].daysByUnix[unix].equip.jobInfos = [];\r\n nonTrkRes?.forEach(tr => {\r\n state.schedule.locations?.[locationIndex].daysByUnix[unix].equip.jobInfos.push(tr);\r\n })\r\n }\r\n\r\n if (state.modifiedDayByLocation?.[locationIndex]?.[unix]?.length === 0 || state.modifiedDayByLocation?.[locationIndex]?.[unix] == null) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"trucking\"];\r\n }\r\n\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"trucking\")) {\r\n state.modifiedDayByLocation[locationIndex][unix].push(\"trucking\");\r\n }\r\n\r\n if (state.schedule.locations[locationIndex].daysByUnix[unix].equip.jobInfos.length === 0) {\r\n state.schedule.locations[locationIndex].daysByUnix[unix].selectedResources[\"TRK\"] = false;\r\n }\r\n\r\n },\r\n addPavingResourcesToDay: (state, action: PayloadAction) => {\r\n const { locationIndex, unix, pavingResources } = action.payload;\r\n\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] == null) {\r\n return;\r\n }\r\n\r\n state.schedule.locations[locationIndex].daysByUnix[unix].paving.pavingResources = [];\r\n\r\n pavingResources.forEach(pav => {\r\n state.schedule.locations?.[locationIndex].daysByUnix[unix].paving.pavingResources.push(pav);\r\n })\r\n\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n if (state.modifiedDayByLocation?.[locationIndex]?.[unix]?.length === 0 || state.modifiedDayByLocation?.[locationIndex]?.[unix] == null) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"paving\"];\r\n }\r\n\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"paving\") && state.modifiedDayByLocation[locationIndex][unix]) {\r\n state.modifiedDayByLocation[locationIndex][unix].push(\"paving\");\r\n }\r\n },\r\n\r\n updateShiftToPavingResources: (state, action: PayloadAction) => {\r\n const { locationIndex, unix, pavingResources } = action.payload;\r\n\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] == null) {\r\n return;\r\n }\r\n\r\n state.schedule.locations[locationIndex].daysByUnix[unix].paving.pavingResources = [];\r\n state.schedule.locations[locationIndex].daysByUnix[unix].paving.pavingResources = pavingResources;\r\n\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n if (state.modifiedDayByLocation?.[locationIndex]?.[unix]?.length === 0 || state.modifiedDayByLocation?.[locationIndex]?.[unix] == null) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"paving\"];\r\n }\r\n\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"paving\") || state.modifiedDayByLocation[locationIndex][unix]) {\r\n state.modifiedDayByLocation[locationIndex][unix].push(\"paving\");\r\n }\r\n },\r\n\r\n removePavingResourcesToDay: (state, action: PayloadAction) => {\r\n const { locationIndex, unix } = action.payload;\r\n\r\n if (state.schedule?.locations?.[locationIndex]?.daysByUnix?.[unix] == null) {\r\n return;\r\n }\r\n\r\n if (state.modifiedDayByLocation[locationIndex] == null) {\r\n state.modifiedDayByLocation[locationIndex] = {}\r\n }\r\n\r\n state.schedule.locations[locationIndex].daysByUnix[unix].paving.pavingResources = [];\r\n\r\n if (state.modifiedDayByLocation?.[locationIndex]?.[unix]?.length === 0 || state.modifiedDayByLocation?.[locationIndex]?.[unix] == null) {\r\n state.modifiedDayByLocation[locationIndex][unix] = [\"paving\"];\r\n }\r\n\r\n if (!state.modifiedDayByLocation[locationIndex][unix]?.includes(\"paving\")) {\r\n state.modifiedDayByLocation[locationIndex][unix].push(\"paving\");\r\n }\r\n },\r\n addTruckingQTYFromPaving: (state, action: PayloadAction) => {\r\n const { locationIndex, unix, qty } = action.payload;\r\n if (state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix] == null) { return }\r\n const day = state.schedule.locations?.[locationIndex]?.daysByUnix?.[unix]\r\n const truckingJobInfos = day.equip.jobInfos.filter(ji => ji?.resourceID === \"TRK\")\r\n if (truckingJobInfos.length > 0) {\r\n if (truckingJobInfos[0] == null) { return }\r\n truckingJobInfos[0].resourceQTY = qty;\r\n return;\r\n }\r\n const jobInfos = day.equip.jobInfos;\r\n for (let i = 0; i < 10; i++) {\r\n if (jobInfos[i] != null) { continue; }\r\n jobInfos[i] = {\r\n pmpe: state.jobNumberInformations?.projectManager,\r\n jobName: state.jobNumberInformations?.jobName,\r\n date: unix,\r\n foreman: \" \",\r\n description: \" \",\r\n resourceID: \"TRK\",\r\n resourceType: \"Equipment\",\r\n additionalResourcesComments: \" \",\r\n searchGSI_JobNumber: state.start.jobNumber as number,\r\n locationIndex: locationIndex,\r\n areaManager: state.jobNumberInformations?.areaManager,\r\n resourceName: \"Trucking\",\r\n resourceQTY: qty,\r\n } as JobInfo\r\n break;\r\n }\r\n state.schedule.locations[locationIndex].daysByUnix[unix].selectedResources[\"TRK\"] = true;\r\n },\r\n\r\n getWeatherData: (state, action: PayloadAction) => {\r\n const forecast: Forecast[] = action.payload\r\n state.forecast = forecast;\r\n const locations = state.schedule.locations\r\n Object.keys(locations).forEach(l => {\r\n const locationsKey = parseInt(l);\r\n const days = locations[locationsKey].daysByUnix\r\n Object.keys(days).forEach(d => {\r\n const dayKey = parseInt(d)\r\n forecast.forEach(f => {\r\n const time = (moment.utc(f.startTime, \"YYYY-MM-DD\").unix()) * 1000\r\n if (time === dayKey) {\r\n state.schedule.locations?.[locationsKey].daysByUnix[dayKey].forecast.push(f);\r\n }\r\n })\r\n })\r\n })\r\n },\r\n\r\n addPavingModuleUser: (state, action: PayloadAction) => {\r\n const { name, email, groups, isInPavingSupers, isInGeneraPavingSupers, isDisabled } = action.payload;\r\n state.pavingModuleUser.name = name;\r\n state.pavingModuleUser.email = email;\r\n state.pavingModuleUser.groups = groups;\r\n state.pavingModuleUser.isInPavingSupers = isInPavingSupers;\r\n state.pavingModuleUser.isInGeneralPavingSupers = isInGeneraPavingSupers;\r\n state.pavingModuleUser.isDisabled = isDisabled;\r\n },\r\n\r\n addEquipmentToPavingModule: (state, action: PayloadAction) => {\r\n const { equipmentManagementResources } = action.payload;\r\n if (equipmentManagementResources == null || equipmentManagementResources.length === 0) { return }\r\n equipmentManagementResources?.forEach(e => {\r\n if (e != null) {\r\n e?.equipmentResources?.forEach(eq => {\r\n if (!state.pavingModule[e.date!]?.equipment.includes(eq))\r\n state.pavingModule[e.date!]?.equipment.push(eq);\r\n })\r\n\r\n let equips = state.pavingModule[e.date!].equipmentSubCategory.map(e => e?.eqSubcategoryDescription);\r\n e?.equipmentSubcategoryData?.forEach(eqs => {\r\n if (!equips.includes(eqs?.eqSubcategoryDescription)) {\r\n state.pavingModule[e.date!]?.equipmentSubCategory.push(eqs);\r\n }\r\n })\r\n }\r\n })\r\n },\r\n\r\n updateEquipmentToPavingModule: (state, action: PayloadAction) => {\r\n const { equipmentManagementResources, equipmentSubcategoryData, dates, jobNumber } = action.payload;\r\n\r\n let equipmentManagementResourcesDiffJN: EquipmentResourceManagementData[] = [];\r\n dates?.forEach(date => {\r\n state.pavingModule?.[date]?.equipment?.forEach(eq => {\r\n if (eq?.jobNumber !== jobNumber) {\r\n equipmentManagementResourcesDiffJN.push({\r\n eqID: eq?.eqID,\r\n eqName: eq?.eqName,\r\n eqSubcategoryDescription: eq?.eqSubcategoryDescription,\r\n eqSubcategoryID: eq?.eqSubcategoryID,\r\n jobName: eq?.eqName,\r\n jobNumber: eq?.jobNumber,\r\n locIndex: eq?.locIndex\r\n })\r\n }\r\n });\r\n\r\n if (state.pavingModule?.[date] != null && state.pavingModule?.[date]?.equipment != null) {\r\n state.pavingModule[date].equipment = [];\r\n }\r\n equipmentManagementResources?.forEach(eq => {\r\n if (!state.pavingModule?.[date]?.equipment.includes(eq))\r\n state.pavingModule?.[date]?.equipment.push(eq);\r\n })\r\n equipmentManagementResourcesDiffJN?.forEach(eq => {\r\n if (!state.pavingModule?.[date]?.equipment.includes(eq))\r\n state.pavingModule?.[date]?.equipment.push(eq);\r\n })\r\n\r\n let equipmentSubCategoryResourcesDiffJN: EquipmentManagementSubCategoryData[] = [];\r\n state.pavingModule[date]?.equipmentSubCategory?.forEach(eqs => {\r\n if (eqs?.jobNumber !== jobNumber) {\r\n equipmentSubCategoryResourcesDiffJN.push({\r\n eqSubcategoryDescription: eqs?.eqSubcategoryDescription?.trim(),\r\n eqSubcategoryID: eqs?.eqSubcategoryID,\r\n jobName: eqs?.jobName,\r\n jobNumber: eqs?.jobNumber,\r\n locIndex: eqs?.locIndex,\r\n qty: eqs?.qty\r\n })\r\n }\r\n })\r\n if (state.pavingModule?.[date] != null && state.pavingModule?.[date]?.equipmentSubCategory != null) {\r\n state.pavingModule[date].equipmentSubCategory = [];\r\n }\r\n equipmentSubcategoryData?.forEach(eqs => {\r\n if (!state.pavingModule[date]?.equipmentSubCategory.includes(eqs)) {\r\n state.pavingModule[date]?.equipmentSubCategory.push(eqs);\r\n }\r\n })\r\n equipmentSubCategoryResourcesDiffJN?.forEach(eqs => {\r\n if (!state.pavingModule[date]?.equipmentSubCategory.includes(eqs)) {\r\n state.pavingModule[date]?.equipmentSubCategory.push(eqs);\r\n }\r\n })\r\n })\r\n },\r\n\r\n updateEquipmentResourcesList: (state, action: PayloadAction) => {\r\n const { date, newDate, jobNumber, shift } = action.payload;\r\n\r\n // if in new date we don't jave equipment for the JN -> copy paste the equip list\r\n // check if in new date we have equipment for the jobNumber\r\n // if we have one item with same jobNumber and different shifts -> merge the equipment list\r\n // if we have item with same jn and shift -> overwrite\r\n // 1 item d -> 1 item d, 1 item n (same jn) -> overwrite d, union n\r\n\r\n const _equipmentResourcesFromDateWithSameJobNumber = state.pavingModule[date].equipment.filter(e => e?.jobNumber === jobNumber);\r\n const _equipmentResourcesSubcategoryFromDateWithSameJobNumber = state.pavingModule[date].equipmentSubCategory.filter(e => e?.jobNumber === jobNumber);\r\n const _equipmentResourcesFromDateWithDifferentJobNumber = state.pavingModule[date].equipment.filter(e => e?.jobNumber !== jobNumber);\r\n const _equipmentResourcesSubcategoryFromDateWithDifferentJobNumber = state.pavingModule[date].equipmentSubCategory.filter(e => e?.jobNumber !== jobNumber);\r\n const _equipmentResourcesNewDateWithDifferentJobNumber = state.pavingModule[newDate].equipment.filter(e => e?.jobNumber !== jobNumber);\r\n const _equipmentResourcesSubcategoryNewDateWithDifferentJobNumber = state.pavingModule[newDate].equipmentSubCategory.filter(e => e?.jobNumber !== jobNumber);\r\n const _equipmentResourcesNewDateWithSameJobNumber = state.pavingModule[newDate].equipment.filter(e => e?.jobNumber === jobNumber);\r\n const _equipmentResourcesSubcategoryNewDateWithSameJobNumber = state.pavingModule[newDate].equipmentSubCategory.filter(e => e?.jobNumber === jobNumber);\r\n let concatEquipments: Maybe[] | null | undefined = [];\r\n let concatEquipmentsSubcategory: Maybe[] | null | undefined = [];\r\n\r\n const numberOfItemsOnDateSameJN = state.pavingModule[date].items.filter(i => i?.jobNumber === jobNumber).length;\r\n const numberOfItemsOnNewDateSameJN = state.pavingModule[newDate].items.filter(i => i?.jobNumber === jobNumber).length;\r\n const numberOfItemsOnNewDate = state.pavingModule[newDate].items.length;\r\n\r\n if (numberOfItemsOnNewDateSameJN === 0) {\r\n _equipmentResourcesFromDateWithSameJobNumber.forEach(eq => {\r\n state.pavingModule[newDate].equipment.push(eq);\r\n })\r\n\r\n _equipmentResourcesSubcategoryFromDateWithSameJobNumber.forEach(eqs => {\r\n state.pavingModule[newDate].equipmentSubCategory.push(eqs);\r\n })\r\n }\r\n\r\n for (let indexNewDate = 0; indexNewDate < numberOfItemsOnNewDate; indexNewDate++) {\r\n if (state.pavingModule[newDate].items[indexNewDate]?.jobNumber as number === jobNumber) {\r\n if (numberOfItemsOnNewDateSameJN === 1) {\r\n if (state.pavingModule[newDate].items[indexNewDate]?.shift === shift) {\r\n state.pavingModule[newDate].equipment = [];\r\n state.pavingModule[newDate].equipmentSubCategory = [];\r\n // equipment resources\r\n _equipmentResourcesFromDateWithSameJobNumber.forEach(eq => {\r\n state.pavingModule[newDate].equipment.push(eq);\r\n })\r\n _equipmentResourcesNewDateWithDifferentJobNumber.forEach(eq => {\r\n state.pavingModule[newDate].equipment.push(eq);\r\n })\r\n\r\n // equipment subcategory resources\r\n _equipmentResourcesSubcategoryFromDateWithSameJobNumber.forEach(eqs => {\r\n state.pavingModule[newDate].equipmentSubCategory.push(eqs);\r\n })\r\n _equipmentResourcesSubcategoryNewDateWithDifferentJobNumber.forEach(eqs => {\r\n state.pavingModule[newDate].equipmentSubCategory.push(eqs);\r\n })\r\n\r\n }\r\n if (state.pavingModule[newDate].items[indexNewDate]?.shift !== shift) {\r\n let equips: Maybe[] = [];\r\n let equipsSubcategory: Maybe[] = [];\r\n\r\n concatEquipments = [..._equipmentResourcesFromDateWithSameJobNumber, ..._equipmentResourcesNewDateWithSameJobNumber];\r\n concatEquipmentsSubcategory = [..._equipmentResourcesSubcategoryFromDateWithSameJobNumber, ..._equipmentResourcesSubcategoryNewDateWithSameJobNumber];\r\n if (concatEquipments != null && concatEquipments.length > 0) {\r\n equips = concatEquipments.filter((v, i, a) => a.findIndex(t => (t?.eqID === v?.eqID && t?.eqID === v?.eqID)) === i)\r\n }\r\n state.pavingModule[newDate].equipment = [];\r\n _equipmentResourcesNewDateWithDifferentJobNumber.forEach(eq => {\r\n if (!state.pavingModule[newDate].equipment.includes(eq))\r\n state.pavingModule[newDate].equipment.push(eq);\r\n })\r\n equips.forEach(eq => {\r\n if (!state.pavingModule[newDate].equipment.includes(eq))\r\n state.pavingModule[newDate].equipment.push(eq);\r\n })\r\n\r\n if (concatEquipmentsSubcategory != null && concatEquipmentsSubcategory.length > 0) {\r\n equipsSubcategory = concatEquipmentsSubcategory\r\n .filter((value, index, self) => self.findIndex(t => (t?.eqSubcategoryID === value?.eqSubcategoryID && (t?.qty! >= value?.qty!))) === index);\r\n }\r\n state.pavingModule[newDate].equipmentSubCategory = [];\r\n _equipmentResourcesSubcategoryNewDateWithDifferentJobNumber.forEach(eqs => {\r\n if (!state.pavingModule[newDate].equipmentSubCategory.includes(eqs))\r\n state.pavingModule[newDate].equipmentSubCategory.push(eqs);\r\n })\r\n equipsSubcategory.forEach(eqs => {\r\n if (!state.pavingModule[newDate].equipmentSubCategory.includes(eqs))\r\n state.pavingModule[newDate].equipmentSubCategory.push(eqs);\r\n })\r\n }\r\n }\r\n if (numberOfItemsOnNewDateSameJN === 2) {\r\n let equips: Maybe[] = [];\r\n let equipsSubcategory: Maybe[] = [];\r\n concatEquipments = [..._equipmentResourcesFromDateWithSameJobNumber, ..._equipmentResourcesNewDateWithSameJobNumber];\r\n concatEquipmentsSubcategory = [..._equipmentResourcesSubcategoryFromDateWithSameJobNumber, ..._equipmentResourcesSubcategoryNewDateWithSameJobNumber];\r\n\r\n if (concatEquipments != null && concatEquipments.length > 0) {\r\n equips = concatEquipments.filter((value, index, self) => self.findIndex(t => (t?.eqID === value?.eqID && t?.eqID === value?.eqID)) === index)\r\n }\r\n state.pavingModule[newDate].equipment = [];\r\n _equipmentResourcesNewDateWithDifferentJobNumber.forEach(eq => {\r\n if (!state.pavingModule[newDate].equipment.includes(eq))\r\n state.pavingModule[newDate].equipment.push(eq);\r\n })\r\n equips.forEach(eq => {\r\n if (!state.pavingModule[newDate].equipment.includes(eq))\r\n state.pavingModule[newDate].equipment.push(eq);\r\n })\r\n\r\n if (concatEquipmentsSubcategory != null && concatEquipmentsSubcategory.length > 0) {\r\n equipsSubcategory = concatEquipmentsSubcategory\r\n .filter((value, index, self) => self.findIndex(t => (t?.eqSubcategoryID === value?.eqSubcategoryID && (t?.qty! >= value?.qty!))) === index);\r\n }\r\n state.pavingModule[newDate].equipmentSubCategory = [];\r\n _equipmentResourcesSubcategoryNewDateWithDifferentJobNumber.forEach(eqs => {\r\n if (!state.pavingModule[newDate].equipmentSubCategory.includes(eqs))\r\n state.pavingModule[newDate].equipmentSubCategory.push(eqs);\r\n })\r\n\r\n equipsSubcategory.forEach(eqs => {\r\n if (!state.pavingModule[newDate].equipmentSubCategory.includes(eqs))\r\n state.pavingModule[newDate].equipmentSubCategory.push(eqs);\r\n })\r\n }\r\n }\r\n }\r\n if (numberOfItemsOnDateSameJN === 1) {\r\n state.pavingModule[date].equipment = [];\r\n state.pavingModule[date].equipmentSubCategory = [];\r\n\r\n // equipment resources\r\n _equipmentResourcesFromDateWithDifferentJobNumber.forEach(eq => {\r\n state.pavingModule[date].equipment.push(eq);\r\n });\r\n\r\n // equipment subcategory resources\r\n _equipmentResourcesSubcategoryFromDateWithDifferentJobNumber?.forEach(eqs => {\r\n state.pavingModule[date].equipmentSubCategory.push(eqs);\r\n })\r\n }\r\n },\r\n\r\n saveChangesToItemFromFullDayPreview: (state, action: PayloadAction) => {\r\n const { grinder12ft, grinder4ft, grinder6ft, grinder7ft, extrawork, bookTruckVendor, oilTruk, uts, tph, broker, date, jobNumber, locatinIndex, nrOfTrucks, superIntendent, tonnage, typeOfTrucks, shift, material, plant, loadOutTime, updateJobInfoTable, updateMasterCrewSchedulePavingTable, updateMasterCrewScheduleTable, areaManager, jobMap, jobName, pavingForeman, pavingSuper, pavingSuperIntendent, pmpe, crewMakeLab, crewMakeOp, resourcesOp, resourcesLab, mixDesignApproval, rtsSupport, mixSubmital } = action.payload;\r\n\r\n if (state.fullDayPreview.length > 0) {\r\n state.fullDayPreview.forEach((item, i) => {\r\n if (item.date === date && item.jobNumber === jobNumber && item.locatinIndex === locatinIndex) {\r\n state.fullDayPreview.splice(i, 1);\r\n }\r\n })\r\n }\r\n\r\n state.fullDayPreview.push({\r\n grinder12ft,\r\n grinder4ft,\r\n grinder6ft,\r\n grinder7ft,\r\n bookTruckVendor,\r\n extrawork,\r\n oilTruk,\r\n tph,\r\n uts,\r\n broker,\r\n date,\r\n jobNumber,\r\n locatinIndex,\r\n nrOfTrucks,\r\n superIntendent,\r\n tonnage,\r\n typeOfTrucks,\r\n shift,\r\n material,\r\n plant,\r\n loadOutTime,\r\n updateJobInfoTable,\r\n updateMasterCrewSchedulePavingTable,\r\n updateMasterCrewScheduleTable,\r\n areaManager,\r\n jobMap,\r\n jobName,\r\n pavingForeman,\r\n pavingSuper,\r\n pavingSuperIntendent,\r\n pmpe,\r\n crewMakeLab,\r\n crewMakeOp,\r\n resourcesOp,\r\n resourcesLab,\r\n mixDesignApproval,\r\n rtsSupport,\r\n mixSubmital\r\n });\r\n },\r\n\r\n\r\n\r\n updateItemsFromPavingModule: (state, action: PayloadAction) => {\r\n const { broker, date, jobNumber, locatinIndex, nrOfTrucks, tonnage, typeOfTrucks, shift, resourcesLab, resourcesOp, tph, uts, oilTruk, extrawork, bookTruckVendor, grinder7ft, grinder6ft, grinder4ft, grinder12ft, mixDesignApproval, rtsSupport, mixSubmital } = action.payload;\r\n if (state.pavingModule[date]?.items != null) {\r\n state.pavingModule[date].items.forEach((item, i) => {\r\n if (item?.date === date && item?.jobNumber === jobNumber && item?.locationIndex === locatinIndex && item?.shift === shift) {\r\n item.broker = broker;\r\n item.nrOfTrucks = nrOfTrucks;\r\n item.tonnage = tonnage;\r\n item.typeOfTrucks = typeOfTrucks;\r\n item.resourcesLab = resourcesLab;\r\n item.resourcesOp = resourcesOp;\r\n item.tph = tph;\r\n item.uts = uts;\r\n item.oilTruk = oilTruk;\r\n item.extraWork = extrawork;\r\n item.bookTruckVendor = bookTruckVendor;\r\n item.grinder4ft = grinder4ft;\r\n item.grinder6ft = grinder6ft;\r\n item.grinder7ft = grinder7ft;\r\n item.grinder12ft = grinder12ft;\r\n item.mixDesignApproval = mixDesignApproval;\r\n item.rtsSupport = rtsSupport;\r\n item.mixSubmital = mixSubmital;\r\n }\r\n })\r\n }\r\n state.fullDayPreview = [];\r\n },\r\n\r\n updateJobMapToPavingModule: (state, action: PayloadAction) => {\r\n const { startDate, jobNumber, jobMap } = action.payload;\r\n Object.keys(state.pavingModule).forEach(date => {\r\n if (moment(parseInt(date)).format(\"YYYY.MM.DD\") >= moment(startDate).format(\"YYYY.MM.DD\")) {\r\n if (state.pavingModule[parseInt(date)]?.items != null) {\r\n state.pavingModule[parseInt(date)].items.forEach((item, i) => {\r\n if (item?.jobNumber === jobNumber) {\r\n item.jobMap = jobMap as string;\r\n }\r\n })\r\n }\r\n }\r\n })\r\n },\r\n\r\n addTruckingAndMaterialDatas: (state, action: PayloadAction) => {\r\n const { truckingDatas, materialDatas } = action.payload;\r\n\r\n if (truckingDatas == null || truckingDatas?.length === 0) { return }\r\n\r\n state.truckingDatas = truckingDatas;\r\n state.materialDatas = materialDatas != null && materialDatas?.length > 0 ? materialDatas : [];\r\n },\r\n\r\n updateTruckingAndMaterialDatas: (state, action: any) => {\r\n const { truckingDatas, materialDatas, _materialDataResources, _truckingDataResources } = action.payload;\r\n\r\n if(_materialDataResources !== undefined){\r\n for (let i = 0; i < _materialDataResources.length; i++) {\r\n //@ts-ignore\r\n let index = materialDatas.findIndex(obj => obj.key === _materialDataResources[i].key);\r\n if (index !== -1) {\r\n materialDatas.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n if(_truckingDataResources !== undefined){\r\n for (let i = 0; i < _truckingDataResources.length; i++) {\r\n //@ts-ignore\r\n let index = truckingDatas.findIndex(obj => obj.key === _truckingDataResources[i].key);\r\n if (index !== -1) {\r\n truckingDatas.splice(index, 1);\r\n }\r\n }\r\n }\r\n if (truckingDatas != null && truckingDatas.length > 0) {\r\n state.truckingDatas = truckingDatas;\r\n }\r\n\r\n if (materialDatas != null && materialDatas.length > 0) {\r\n state.materialDatas = materialDatas;\r\n }\r\n },\r\n\r\n updateForemanForItemsFromCalendar: (state, action: PayloadAction) => {\r\n const { foremanNameForUpdate, foremanToDelete } = action.payload;\r\n\r\n if (foremanToDelete == null && foremanToDelete == null) return;\r\n\r\n Object.keys(state.pavingModule).forEach(date => {\r\n state.pavingModule[parseInt(date)].items.forEach(item => {\r\n if (item?.pavingForeman === foremanToDelete) {\r\n item.pavingForeman = foremanNameForUpdate;\r\n }\r\n })\r\n });\r\n },\r\n\r\n addRemoteEquipmentList: (state, action: PayloadAction) => {\r\n const { list } = action.payload;\r\n\r\n if (list == null) return;\r\n\r\n state.remoteEquipmentList = list;\r\n },\r\n\r\n cleanModifiedDayByLocation: (state) => {\r\n state.modifiedDayByLocation = {};\r\n state.modifiedLocationInfo = {};\r\n if (state.lastDay != null) {\r\n state.lastDay = null;\r\n }\r\n\r\n if (state.copyDay != null) {\r\n state.copyDay = null;\r\n }\r\n\r\n if (state.copyPaving != null) {\r\n state.copyPaving = null;\r\n }\r\n\r\n if (state.copyPavingJobInfo != null) {\r\n state.copyPavingJobInfo = null;\r\n }\r\n\r\n if (state.copyPavingTruckingResourceJobInfo != null) {\r\n state.copyPavingTruckingResourceJobInfo = null\r\n }\r\n\r\n if (state.copyPavingTruckingResources != null) {\r\n state.copyPavingTruckingResources = null\r\n }\r\n\r\n if (state.copyTrucking != null) {\r\n state.copyTrucking = null\r\n }\r\n\r\n if (state.copyTruckingJobInfo != null) {\r\n state.copyTruckingJobInfo = null\r\n }\r\n },\r\n\r\n setLockedDays: (state, action: PayloadAction) => {\r\n const { lockedDays } = action.payload;\r\n\r\n state.lockedDays = lockedDays;\r\n },\r\n }\r\n});\r\n\r\n\r\nconst myFetch = async (url: string) => {\r\n let headers = { Accept: \"application/ld+json\" }\r\n let options = { \"headers\": headers };\r\n const [error, response] = await to(fetch(url, options))\r\n if (error != null || response == null) { return }\r\n const [errorJson, responseJson] = await to(response.json());\r\n if (errorJson != null || responseJson == null) { return }\r\n return responseJson\r\n}\r\n\r\nexport const getWeatherDataAsync = (): AppThunk => async (dispatch, getState) => {\r\n const state = getState();\r\n const response = await myFetch(`${settings.weatherGridPoints}${state.app.jobNumberInformations?.coordinateLat},${state.app.jobNumberInformations?.coordinateLong}`);\r\n if (response == null) { return }\r\n const forecastURL: string = response?.forecast\r\n if (typeof forecastURL !== \"string\") { return }\r\n const responseForecast = await myFetch(forecastURL)\r\n if (responseForecast == null) { return }\r\n const periods = responseForecast?.periods\r\n if (periods == null) { return }\r\n dispatch(getWeatherData(periods));\r\n};\r\n\r\n\r\nexport const {\r\n reducer: app,\r\n actions: {\r\n reset,\r\n login,\r\n addToken,\r\n refreshAuthToken,\r\n logout,\r\n start,\r\n init,\r\n addLocation,\r\n addCustomCrews,\r\n clearDay,\r\n pasteDay,\r\n undoDay,\r\n copyDay,\r\n copyTrucking,\r\n copyPaving,\r\n copyResourcesWithoutPav,\r\n JobChange,\r\n JobQTY,\r\n addResourcesToDay,\r\n addDescriptionToDay,\r\n locationInfoChange,\r\n addAdditionalResourceCommentsToDay,\r\n addJobNumberInformation,\r\n RemoveJob,\r\n removeToken,\r\n getWeatherData,\r\n addTruckingResourcesToDay,\r\n removeTruckingResourcesToDay,\r\n addPavingResourcesToDay,\r\n addTruckingQTYFromPaving,\r\n cleanModifiedDayByLocation,\r\n initPavingModule,\r\n addDataToPavingModule,\r\n movePavingItemToAnotherDate,\r\n addPavingModuleUser,\r\n changePavingItemForeman,\r\n updateJobNumberStatusFromDay,\r\n updateBlockedForemanFromDay,\r\n updateJobsNumbersRedBordered,\r\n addBlockedJobNumbersAndForemansToPavingModule,\r\n addDayStatusToPavingModule,\r\n updateDayStatusForPavingModule,\r\n removePavingResourcesToDay,\r\n addEquipmentSubcategories,\r\n addEquipmentResources,\r\n addEquipmentToPavingModule,\r\n updateEquipmentToPavingModule,\r\n updateEquipmentResourcesList,\r\n addTruckingAndMaterialDatas,\r\n saveChangesToItemFromFullDayPreview,\r\n updateItemsFromPavingModule,\r\n updateJobMapToPavingModule,\r\n addPavingFromPavingCalendarResources,\r\n addPavingFromPavingManagement,\r\n updateForemanForItemsFromCalendar,\r\n addIncompleteItemsToPavingModule,\r\n deleteResourcesFromJIAndTrucking,\r\n addTruckingResourcesToDayFromPavingManagement,\r\n removeNonPavingTruckingResourcesToDay,\r\n removePavingTruckingResourcesToDay,\r\n updateShiftToPavingResources,\r\n removeItemFromPavingModule,\r\n addRemoteEquipmentList,\r\n changeDoubledShift,\r\n setLockedDays,\r\n updateTruckingAndMaterialDatas\r\n },\r\n} = appSlice;\r\n\r\ninterface StartPayload extends StartState { }\r\n\r\ninterface AuthPayload extends AuthState { }","import cookie from 'js-cookie';\r\n\r\nexport const addTokenToCookie = (token: string) => {\r\n cookie.set('token', token);\r\n};\r\n\r\nexport const addIdTokenToCookie = (token: string) => {\r\n cookie.set('id_token', token);\r\n};\r\n\r\nexport const addRefreshTokenToCookie = (token: string) => {\r\n cookie.set('refresh_token', token);\r\n};\r\n","import cookie from 'js-cookie';\r\n\r\nexport const removeTokenFromCookie = () => {\r\n cookie.remove('token');\r\n};\r\n\r\nexport const removeIdTokenFromCookie = () => {\r\n cookie.remove('id_token');\r\n};\r\n\r\nexport const removeRefreshTokenFromCookie = () => {\r\n cookie.remove('refresh_token');\r\n};","import { createLogger } from \"redux-logger\";\r\n\r\nexport const logger = createLogger({\r\n collapsed: true,\r\n});\r\n","import { configureStore, ThunkAction, Action, Middleware } from '@reduxjs/toolkit';\r\nimport { app } from \"./appSlice\";\r\nimport { loginMiddleware, tokenMiddleware, refreshTokenMiddleware } from './middleware/loginMiddleware';\r\nimport { logoutMiddleware } from './middleware/logoutMiddleware';\r\nimport { logger } from './middleware/loggerMiddleware';\r\nimport thunk from 'redux-thunk'\r\n\r\nexport const store = configureStore({\r\n reducer: {\r\n app,\r\n },\r\n middleware: [thunk, loginMiddleware, tokenMiddleware, refreshTokenMiddleware, logoutMiddleware, logger] as Middleware[],\r\n});\r\n\r\nexport type RootState = ReturnType;\r\nexport type AppThunk = ThunkAction<\r\n ReturnType,\r\n RootState,\r\n unknown,\r\n Action\r\n>;\r\n","import { addTokenToCookie, addIdTokenToCookie, addRefreshTokenToCookie } from \"../../auth/addTokenToCookie\";\r\n\r\nexport const loginMiddleware = ({ dispatch, getState }: any) => (next: any) => (action: any) => {\r\n if (action.type === \"app/login\" && action.payload.token! != null && action.payload.token! !== \"\") {\r\n addTokenToCookie(action.payload.token!);\r\n }\r\n return next(action);\r\n}\r\n\r\nexport const refreshTokenMiddleware = ({ dispatch, getState }: any) => (next: any) => (action: any) => {\r\n if (action.type === \"app/refreshAuthToken\" && action.payload.id_token! != null && action.payload.id_token! !== \"\") {\r\n addIdTokenToCookie(action.payload.id_token!);\r\n }\r\n return next(action);\r\n}\r\n\r\nexport const tokenMiddleware = ({ dispatch, getState }: any) => (next: any) => (action: any) => {\r\n if (\r\n action.type === \"app/addToken\"\r\n && action.payload.id_token! != null\r\n && action.payload.id_token! !== \"\"\r\n && action.payload.refresh_token! != null\r\n && action.payload.refresh_token! !== \"\"\r\n ) {\r\n addIdTokenToCookie(action.payload.id_token!);\r\n addRefreshTokenToCookie(action.payload.refresh_token!);\r\n }\r\n return next(action);\r\n}\r\n","import { removeTokenFromCookie, removeIdTokenFromCookie, removeRefreshTokenFromCookie } from \"../../auth/removeTokenFromCookie\";\r\n\r\nexport const logoutMiddleware = ({ dispatch, getState }: any) => (next: any) => (action: any) => {\r\n if (action.type === \"app/logout\") {\r\n removeTokenFromCookie();\r\n removeIdTokenFromCookie();\r\n removeRefreshTokenFromCookie();\r\n }\r\n return next(action);\r\n}\r\n","import gql from \"graphql-tag\";\r\n\r\nexport const JOB_NUMBER_INFO_QUERY = gql`\r\n query jobNumberInformation($jobNumber: Int!){\r\n jobNumberInformation(jobNumber: $jobNumber) {\r\n\t\tid\r\n\t\tjobNumber\r\n\t\tjobName\r\n\t\tcoordinateLat\r\n\t\tcoordinateLong\r\n\t\taddress\r\n\t\tareaManager\r\n\t\tprojectManager\r\n\t\tsuperIntendentName\r\n\t\tsuperIntendentCode\r\n\t}\r\n }\r\n`;","import { EventEmitter } from \"eventemitter3\";\r\nimport React from \"react\";\r\nimport { v4 } from \"uuid\";\r\n\r\nconst emitter = new EventEmitter();\r\n\r\nexport type EmittersType = ReturnType[\"getEmitters\"]> | null | undefined;\r\n\r\nexport type ILoadingEventsByType = {\r\n [key: string]: IEmitterEventArgument\r\n}\r\n\r\nexport type IErrorEventsByType = {\r\n [key: string]: IEmitterEventArgument & IErrorEventArgument;\r\n}\r\n\r\nexport interface IErrorEventArgument {\r\n onDismiss?(): void;\r\n onRetry?(): void;\r\n message?: string | Error | React.ReactNode;\r\n}\r\n\r\nexport interface IEmitterEventArgument {\r\n id: string;\r\n event: EmitterEvent;\r\n origin?: string;\r\n}\r\n\r\nexport enum EmitterEvent {\r\n LOADING = \"LOADING\",\r\n COMPLETED = \"COMPLETED\",\r\n ERROR = \"ERROR\",\r\n DISMISS_ERROR = \"DISMISS_ERROR\"\r\n}\r\n\r\nconst emitLoadingEventFactory = (id: IEmitterEventArgument[\"id\"], origin?: string) =>\r\n () => {\r\n const event = EmitterEvent.LOADING;\r\n emitter.emit(event, { id, event, origin } as IEmitterEventArgument);\r\n }\r\n\r\nconst emitCompletedEventFactory = (id: IEmitterEventArgument[\"id\"], origin?: string) =>\r\n () => {\r\n const event = EmitterEvent.COMPLETED;\r\n emitter.emit(event, { id, event, origin } as IEmitterEventArgument);\r\n }\r\n\r\nconst emitErrorEventFactory = (id: IEmitterEventArgument[\"id\"], origin?: string) =>\r\n (arg?: Partial) => {\r\n const event = EmitterEvent.ERROR;\r\n emitter.emit(event, { id, event, origin, ...arg } as IEmitterEventArgument & IErrorEventArgument);\r\n }\r\n\r\nconst emitDismissErrorEventFactory = (id: IEmitterEventArgument[\"id\"], origin?: string) =>\r\n () => {\r\n const event = EmitterEvent.DISMISS_ERROR;\r\n emitter.emit(event, { id, event, origin } as IEmitterEventArgument);\r\n }\r\n\r\nconst getEmitters = (origin?: string) => {\r\n const id = v4();\r\n return ({\r\n emitLoadingEvent: emitLoadingEventFactory(id, origin),\r\n emitCompletedEvent: emitCompletedEventFactory(id, origin),\r\n emitErrorEvent: emitErrorEventFactory(id, origin),\r\n emitDismissErrorEvent: emitDismissErrorEventFactory(id, origin),\r\n });\r\n}\r\n\r\nexport const loadingContextValue = {\r\n emitter,\r\n getEmitters,\r\n}\r\n\r\nexport const loadingContext = React.createContext(loadingContextValue);\r\n","import React from \"react\"\r\nimport { loadingContext, EmittersType } from \"../LoadingContext/LoadingContext\";\r\n\r\ninterface IFullScreenLoadingIndicatorProps {\r\n origin?: string | undefined;\r\n}\r\n\r\nexport class FullScreenLoadingIndicator extends React.PureComponent {\r\n static contextType = loadingContext;\r\n context: React.ContextType | null | undefined;\r\n\r\n emitters: EmittersType;\r\n\r\n componentDidMount() {\r\n if (this.context == null) return;\r\n this.emitters = this.context.getEmitters(this.props.origin || \"FullScreenLoadingIndicator\");\r\n\r\n this.emitters.emitLoadingEvent();\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.context == null) return;\r\n if (this.emitters == null) return;\r\n\r\n this.emitters.emitCompletedEvent();\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n )\r\n }\r\n\r\n}\r\n","import { FC, useContext, useEffect } from \"react\";\r\nimport { loadingContext, IErrorEventArgument, IEmitterEventArgument } from \"../LoadingContext/LoadingContext\";\r\n\r\ninterface IFullScreenErrorIndicatorProps extends Partial { }\r\n\r\nexport const FullScreenErrorIndicator: FC = props => {\r\n\r\n const context = useContext(loadingContext);\r\n\r\n useEffect(() => {\r\n if (context == null) return;\r\n\r\n const { emitErrorEvent, emitDismissErrorEvent } = context.getEmitters(props.origin || \"FullScreenErrorIndicator\");\r\n\r\n const { onDismiss, onRetry, message } = props;\r\n\r\n emitErrorEvent({\r\n onDismiss,\r\n onRetry,\r\n message,\r\n });\r\n\r\n return () => {\r\n // just in case, if component is unmounted, \r\n // we should just dismiss the error\r\n emitDismissErrorEvent();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n return (\r\n null\r\n )\r\n\r\n}\r\n","import React, { FC, CSSProperties, useEffect, useRef, useReducer, ReactNode } from \"react\";\r\nimport flatpickr from \"flatpickr\";\r\nimport { Instance } from \"flatpickr/dist/types/instance\";\r\nimport moment from \"moment\";\r\nimport \"flatpickr/dist/themes/material_green.css\";\r\n\r\n\r\nexport interface ISelectDateStartProps {\r\n currentDates: string[] | null | undefined;\r\n disabled?: boolean;\r\n /**\r\n * Fires only when the picker changes the date\r\n * @param date number\r\n */\r\n onPickerChange?(date: string[]): void;\r\n containerStyle?: CSSProperties;\r\n children?(state: IState): ReactNode;\r\n id?: string;\r\n dates?: { [date: string]: boolean };\r\n}\r\n\r\ninterface IState {\r\n currentDate: string | null;\r\n dates: string[] | null;\r\n visible: boolean;\r\n previousAction?: IAction;\r\n}\r\n\r\nenum ActionTypes {\r\n SET_PICKER_DATES = \"SET_PICKER_DATE\",\r\n SET_PROPS_DATES = \"SET_PROPS_DATE\",\r\n SET_VISIBILITY = \"SET_VISIBILITY\"\r\n}\r\n\r\ninterface IAction {\r\n type: ActionTypes;\r\n payload?: T;\r\n}\r\n\r\nconst getInitialState = (): IState => ({\r\n dates: null,\r\n currentDate: null,\r\n visible: false,\r\n});\r\n\r\nconst getDateFromSelectedDates = (date: Date) => {\r\n let _date: Date;\r\n if (date == null) {\r\n _date = moment().toDate();\r\n } else {\r\n _date = date;\r\n }\r\n return _date\r\n}\r\n\r\nconst mainReducer = (state: IState, action: IAction): IState => {\r\n switch (action.type) {\r\n\r\n case ActionTypes.SET_PICKER_DATES: {\r\n const dates = action.payload as Date[];\r\n let _dates: string[] = [];\r\n\r\n dates.forEach((date) => {\r\n const d = getDateFromSelectedDates(date);\r\n const _date = moment(d).format(\"YYYY.MM.DD\")\r\n _dates.push(_date);\r\n })\r\n\r\n return ({\r\n ...state,\r\n dates: _dates,\r\n });\r\n }\r\n\r\n case ActionTypes.SET_PROPS_DATES: {\r\n let dates: string[] = action.payload;\r\n\r\n return ({\r\n ...state,\r\n dates,\r\n });\r\n }\r\n\r\n case ActionTypes.SET_VISIBILITY: {\r\n const visible = action.payload as boolean;\r\n return ({\r\n ...state,\r\n visible,\r\n });\r\n }\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return state;\r\n}\r\n\r\nconst reducer = (state: IState, action: IAction): IState => {\r\n return ({\r\n ...mainReducer(state, action),\r\n previousAction: action,\r\n });\r\n}\r\n\r\nexport const SelectDateStart: FC = props => {\r\n const [state, dispatch] = useReducer(reducer, getInitialState())\r\n\r\n const fp = useRef(null);\r\n const elem = useRef(null);\r\n\r\n // on props change, the instance should reflect that\r\n useEffect(() => {\r\n if (props.currentDates == null) return;\r\n\r\n dispatch({ type: ActionTypes.SET_PROPS_DATES, payload: props.currentDates });\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n fp.current != null\r\n ? fp.current.setDate(\r\n props.currentDates.map(date => moment(date, \"YYYY.MM.DD\").toDate())\r\n )\r\n : null;\r\n }, [props.currentDates])\r\n\r\n // destroy picker on state.visible === false\r\n useEffect(() => {\r\n if (state.visible) return;\r\n if (fp.current == null) return;\r\n destroy();\r\n }, [state.visible])\r\n\r\n const onWheel = useRef(() => {\r\n dispatch({ type: ActionTypes.SET_VISIBILITY, payload: false });\r\n });\r\n\r\n const destroy = () => {\r\n document.removeEventListener(\"wheel\", onWheel.current);\r\n if (fp.current == null) return;\r\n fp.current.close();\r\n fp.current.destroy();\r\n (fp.current as any) = null;\r\n };\r\n\r\n useEffect(() => {\r\n return () => {\r\n destroy();\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const onDayCreate = (dObj: any, dStr: any, fp: any, dayElem: HTMLElement & any) => {\r\n dayElem.innerHTML = `${dayElem.innerHTML}`\r\n }\r\n\r\n useEffect(() => {\r\n if (fp.current == null) return;\r\n fp.current.set(\"onDayCreate\", onDayCreate)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.currentDates])\r\n\r\n const create = () => {\r\n if (elem.current == null) return;\r\n if (fp.current != null) return;\r\n (fp.current as any) = flatpickr(elem.current, {\r\n onChange(selectedDates, dateStr, instance) {\r\n dispatch({ type: ActionTypes.SET_PICKER_DATES, payload: selectedDates });\r\n\r\n props.onPickerChange?.(selectedDates.map(date => moment(date).format(\"YYYY.MM.DD\")));\r\n },\r\n onReady(selectedDate, dateStr, instance) {\r\n instance.open();\r\n },\r\n onOpen(selectedDate, dateStr, instance) {\r\n dispatch({ type: ActionTypes.SET_VISIBILITY, payload: true });\r\n },\r\n onClose(selectedDate, dateStr, instance) {\r\n dispatch({ type: ActionTypes.SET_VISIBILITY, payload: false });\r\n },\r\n disableMobile: true,\r\n showMonths: 1,\r\n dateFormat: \"d m Y\",\r\n mode: \"range\",\r\n minDate: (moment.utc(moment().startOf('month').format(\"YYYY-MM-DD\")).unix()) * 1000,\r\n maxDate: ((moment.utc(moment().startOf('month').add(12, 'months').format(\"YYYY-MM-DD\")).unix()) * 1000),\r\n });\r\n document.addEventListener(\"wheel\", onWheel.current);\r\n if (props.currentDates != null) {\r\n fp.current!.setDate(\r\n props.currentDates.map(date => moment(date, \"YYYY.MM.DD\").toDate())\r\n );\r\n }\r\n };\r\n\r\n return (\r\n
\r\n Select Dates: {props.currentDates?.length === 2\r\n ? <>\r\n {moment(props?.currentDates?.[0] as string, \"YYYY.MM.DD\").format('MM/DD/YYYY')} - {moment(props?.currentDates?.[1] as string, \"YYYY.MM.DD\").format('MM/DD/YYYY')}\r\n \r\n : null\r\n }\r\n
\r\n );\r\n}","import React, {useState, useEffect} from \"react\";\r\nimport { useHistory } from 'react-router-dom';\r\nimport \"./SelectAmPm.css\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../redux/store\";\r\nimport jwt_decode from \"jwt-decode\";\r\nimport { addPavingModuleUser } from \"../../redux/appSlice\";\r\n\r\nexport const SelectAmPm = () => {\r\n const history = useHistory();\r\n\r\n const token = useSelector((state: RootState) => state.app.auth.id_token);\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst [state, setState] = useState({\r\n\t\tcognito_groups: [] as string[],\r\n\t\temail: \"\",\r\n\t\tname: \"\",\r\n\t\tisDisabled: null as boolean | null,\r\n\t\tisPavingSuper: null as boolean | null,\r\n\t\tisGeneral: null as boolean | null\r\n\t});\r\n\r\n\tuseEffect(() => {\r\n\t\tif (token == null) return;\r\n\t\ttry {\r\n\t\t\tconst decoded_token: any = jwt_decode(token as string);\r\n\t\t\tconst email = decoded_token?.[\"identities\"][0].userId;\r\n\t\t\tconst cognito_groups = decoded_token?.[\"cognito:groups\"];\r\n\t\t\tconst isDisabled = cognito_groups.includes(\"DisabledUsers\");\r\n\t\t\tconst isPavingSuper = cognito_groups.includes(\"PavingSupers\");\r\n\t\t\tconst isGeneral = cognito_groups.includes(\"GeneralPavingSupers\");\r\n\t\t\tconst _name = email.split(\"@\")[0].toUpperCase();\r\n\t\t\tconst name = _name.slice(0, 1) + \" \" + _name.slice(1);\r\n\r\n\t\t\tsetState((state) => ({\r\n\t\t\t\tcognito_groups,\r\n\t\t\t\temail,\r\n\t\t\t\tname,\r\n\t\t\t\tisDisabled,\r\n\t\t\t\tisPavingSuper,\r\n\t\t\t\tisGeneral\r\n\t\t\t}))\r\n\t\t}\r\n\t\tcatch (err) { }\r\n\t}, [token, state.isDisabled])\r\n\r\n\tuseEffect(() => {\r\n\t\tif (token == null) return;\r\n\t\tif (state.isDisabled === true || state.isPavingSuper === false) return;\r\n\r\n\t\tdispatch(addPavingModuleUser({\r\n\t\t\tname: state.name,\r\n\t\t\temail: state.email,\r\n\t\t\tgroups: state.cognito_groups,\r\n\t\t\tisInPavingSupers: state.isPavingSuper as boolean,\r\n\t\t\tisInGeneraPavingSupers: state.isGeneral as boolean,\r\n\t\t\tisDisabled: state.isDisabled as boolean,\r\n\t\t}))\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t}, [token, state.isDisabled])\r\n\r\n function handleClickAM(){\r\n history.push('/pavingplanner');\r\n window.location.reload()\r\n }\r\n function handleClickPM(){\r\n history.push('/start');\r\n window.location.reload()\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\n","import moment from \"moment\";\r\nimport React, { FC, useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useImmer } from \"use-immer\";\r\nimport { start, addJobNumberInformation, reset } from \"../redux/appSlice\";\r\nimport { useLazyQuery } from \"@apollo/react-hooks\";\r\nimport { Query } from \"../graphql/schema-types\";\r\nimport { JOB_NUMBER_INFO_QUERY } from \"../graphql/queries/JOB_NUMBER_INFO_QUERY\";\r\nimport { FullScreenLoadingIndicator } from \"./Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\nimport { FullScreenErrorIndicator } from \"./Modal/ErrorIndicator/FullScreenErrorIndicator\";\r\nimport { settings } from \"../config/settings\";\r\nimport { SelectDateStart } from \"./SelectDateStart\";\r\nimport { SelectAmPm } from \"./SelectAmPm/SelectAmPm\";\r\n\r\nconst isNumber = (num: number | \"\") => {\r\n if (typeof num !== \"number\") return false;\r\n if (isNaN(num)) return false;\r\n return true;\r\n}\r\n\r\nconst isValidJobNumber = (jobNumber: number | \"\") => {\r\n if (!isNumber(jobNumber)) return false;\r\n return true;\r\n}\r\n\r\nconst isValidDays = (days: number | \"\") => {\r\n if (!isNumber(days)) return false;\r\n if (days < 9 || days > 90) return false;\r\n return true;\r\n}\r\n\r\nconst isValidDate = (date: string) => {\r\n if (!moment(date, \"YYYY-MM-DD\").isValid()) return false;\r\n return true;\r\n}\r\n\r\nconst getLocalState = () => {\r\n let rv = {};\r\n try {\r\n rv = JSON.parse(localStorage.getItem(\"startState\") ?? \"{}\")\r\n }\r\n catch (e) {\r\n\r\n }\r\n return rv;\r\n}\r\n\r\nexport const Start: FC = (props) => {\r\n\r\n const history = useHistory();\r\n\r\n const [state, setState] = useImmer({\r\n jobNumber: \"\" as number | \"\",\r\n beginDate: \"\" as string,\r\n endDate: \"\" as string,\r\n days: \"\" as number | \"\",\r\n validJobNumber: null as boolean | null,\r\n validBeginDate: null as boolean | null,\r\n validEndDate: null as boolean | null,\r\n validDays: null as boolean | null,\r\n });\r\n\r\n const [selectedDates, setSelectedDates] = useState([]);\r\n\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n const localState: Partial = getLocalState();\r\n setState(() => ({\r\n jobNumber: localState.jobNumber ?? \"\",\r\n beginDate: localState.beginDate ?? selectedDates[0],\r\n endDate: localState.endDate ?? selectedDates[1],\r\n days: localState.days ?? \"\",\r\n validJobNumber: (localState.jobNumber != null && localState.jobNumber !== \"\") ? true : null,\r\n validBeginDate: ((localState.beginDate != null && localState.beginDate !== \"\") || (selectedDates != null && selectedDates?.[0] !== \"\")) ? true : null,\r\n validEndDate: ((localState.endDate != null && localState.endDate !== \"\") || (selectedDates != null && selectedDates?.[1] !== \"\")) ? true : null,\r\n validDays: (localState.days != null && localState.days !== \"\") ? true : null,\r\n }));\r\n\r\n setSelectedDates([localState.beginDate as string, localState.endDate as string]);\r\n }, []); // eslint-disable-line\r\n\r\n const [getJobNumberInfo, {\r\n loading: jobNumberInfoLoading\r\n , error: jobNumberInfoError\r\n , data: jobNumberInfoData\r\n }] = useLazyQuery>(JOB_NUMBER_INFO_QUERY, {\r\n fetchPolicy: \"no-cache\"\r\n });\r\n\r\n useEffect(() => {\r\n if (jobNumberInfoData == null || jobNumberInfoData.jobNumberInformation == null) {\r\n return;\r\n }\r\n dispatch(addJobNumberInformation({ jobNumberInformations: jobNumberInfoData.jobNumberInformation }))\r\n dispatch(start({ ...state }));\r\n localStorage.setItem(\"startState\", JSON.stringify(state));\r\n history.push(\"/schedule\");\r\n }, [dispatch, history, jobNumberInfoData, state]);\r\n\r\n const onJobNumberChange = (e: React.ChangeEvent) => {\r\n const value = parseInt(e.target.value);\r\n const inputValue = isNaN(value) ? \"\" : value;\r\n setState(draft => {\r\n draft.jobNumber = inputValue;\r\n draft.validJobNumber = isValidJobNumber(inputValue);\r\n });\r\n }\r\n\r\n const isValidForm = () => {\r\n const { validBeginDate, validDays, validJobNumber, validEndDate } = state;\r\n return validBeginDate && validEndDate && validDays && validJobNumber;\r\n }\r\n\r\n const onSubmit = (e: React.MouseEvent) => {\r\n if (!isValidForm()) return;\r\n\r\n getJobNumberInfo({\r\n variables: { jobNumber: state.jobNumber },\r\n });\r\n }\r\n\r\n const onLogout = () => {\r\n history.push({\r\n pathname: '/logout',\r\n state: {\r\n from: \"/logout\"\r\n }\r\n })\r\n }\r\n\r\n const onDateSelected = (dates: string[]) => {\r\n setSelectedDates(dates);\r\n\r\n const _firstDay = moment(dates?.[0]);\r\n const _lastDay = moment(dates?.[1]);\r\n const daysLength = Math.abs(moment.duration(_firstDay.diff(_lastDay)).asDays()) + 1;\r\n\r\n setState(draft => {\r\n draft.beginDate = dates?.[0];\r\n draft.endDate = dates?.[1];\r\n draft.days = Math.round(daysLength);\r\n draft.validDays = isValidDays(Math.round(daysLength));\r\n draft.validEndDate = isValidDate(dates[1]);\r\n draft.validBeginDate = isValidDate(dates[0]);\r\n });\r\n }\r\n\r\n return (\r\n
\r\n\r\n {jobNumberInfoLoading && }\r\n {jobNumberInfoError != null && }\r\n
\r\n \"graniterock\"\r\n
\r\n
\r\n
Job number:
\r\n \r\n
\r\n
\r\n \r\n
\r\n {\r\n jobNumberInfoData?.jobNumberInformation === null\r\n ?
Not a valid job number
\r\n : null\r\n }\r\n {\r\n state.days < 9\r\n ?
The number of days should be minimum 9
\r\n : null\r\n }\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n );\r\n}","import React, { FC, useState, useEffect } from 'react';\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../redux/store\";\r\nimport moment from 'moment';\r\n\r\ninterface IDateSelect {\r\n superIntendent: string;\r\n}\r\n\r\nconst DateSelect: FC = (props) => {\r\n const [firstDay, setFirstDay] = useState();\r\n const [lastDay, setLastDay] = useState();\r\n\r\n const days = useSelector((state: RootState) => state.app.schedule.locations);\r\n\r\n useEffect(() => {\r\n if (days == null || Object.keys(days).length === 0) return;\r\n\r\n const _days = Object.values(days[1]?.days);\r\n setFirstDay(_days[0]);\r\n setLastDay(_days[_days.length - 1])\r\n }, [days])\r\n\r\n return (\r\n
\r\n
\r\n
Begin Date:
\r\n \r\n
\r\n
\r\n
End Date:
\r\n \r\n
\r\n
\r\n
Superintendent
\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default DateSelect;","import React from 'react';\r\n\r\ninterface ITextInput {\r\n\tid?: string;\r\n\ttype: string;\r\n\tplaceholder?: string;\r\n\tvalue: string;\r\n\tonChange: (e: React.ChangeEvent) => void;\r\n\tonBlur?: (e: React.ChangeEvent) => void;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\tmaxLength?: number;\r\n\tmin?: string;\r\n\tstyle?: React.CSSProperties | undefined;\r\n}\r\n\r\nexport const TextInput: React.FC = ({ id, type, value, placeholder, onChange, className, onBlur, disabled, maxLength, min, style }) => {\r\n\treturn (\r\n\t\t onChange(e)}\r\n\t\t\tplaceholder={placeholder}\r\n\t\t\tclassName={className}\r\n\t\t\tonBlur={e => onBlur?.(e)}\r\n\t\t\tdisabled={disabled}\r\n\t\t\tmaxLength={maxLength}\r\n\t\t\tmin={min}\r\n\t\t\tstyle={style}\r\n\t\t/>\r\n\t);\r\n};","import React, { FC, CSSProperties } from 'react';\r\n\r\ninterface IButton {\r\n\tclassName?: string;\r\n\ttype?: \"button\" | \"submit\" | \"reset\" | undefined;\r\n\tonClick?(): void;\r\n\ttitle?: string;\r\n\tchildren?: any;\r\n\tdisabled?: boolean;\r\n\tstyle?: CSSProperties;\r\n}\r\n\r\nexport const Button: FC = ({ className, type, onClick, disabled, title, children, style }) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t{title}\r\n\t\t\t{children}\r\n\t\t\r\n\t);\r\n};","import gql from \"graphql-tag\";\r\n\r\nexport const CREATE_CREW_MUTATION = gql`\r\n mutation createCrew($jobNumber: Int, $code: String, $description: String ){\r\n createCrew(jobNumber: $jobNumber, code: $code, description: $description)\r\n }\r\n`;","import { EventEmitter } from \"eventemitter3\";\r\n\r\nexport enum EmitterEvents {\r\n MODAL = \"MODAL\",\r\n CLOSE_MODAL = \"CLOSE_MODAL\",\r\n TOP_MODAL = \"TOP_MODAL\",\r\n CLOSE_TOP_MODAL = \"CLOSE_TOP_MODAL\",\r\n CLOSE_ALL_MODALS = \"CLOSE_ALL_MODALS\",\r\n}\r\n\r\nexport const emitter = new EventEmitter();\r\n","import React, { ReactElement } from \"react\";\r\nimport EventEmitter from \"eventemitter3\";\r\nimport { isElement } from \"react-dom/test-utils\";\r\nimport { EmitterEvents } from \"../emitter\";\r\nimport { v4 } from \"uuid\";\r\n\r\ninterface ElementModal

{\r\n id?: string;\r\n element: ReactElement

;\r\n}\r\n\r\ninterface ComponentModal

{\r\n id?: string;\r\n component: React.ComponentClass

| React.FC

;\r\n props?: P;\r\n}\r\n\r\nexport type Modal

= ElementModal

| ComponentModal

;\r\n\r\nexport function isElementModal(modal: any): modal is ElementModal {\r\n return (\r\n isElement((modal as ElementModal).element)\r\n && (modal as ComponentModal).component == null\r\n && (modal as ComponentModal).props == null\r\n );\r\n}\r\n\r\nexport function isComponentModal(modal: any): modal is ComponentModal {\r\n return (\r\n (modal as ComponentModal).component != null\r\n && (modal as ComponentModal).props != null\r\n && (modal as ElementModal).element == null\r\n );\r\n}\r\n\r\nexport type ModalContextValue = {\r\n emitter: EventEmitter | undefined;\r\n openModal:

(modal: Modal

) => void;\r\n getModalHandlers:

(modal: Modal

) => {\r\n openModal: () => void;\r\n closeModal: () => void;\r\n }\r\n openTopModal:

(modal: Modal

) => void;\r\n getTopModalHandlers:

(modal: Modal

) => {\r\n openTopModal: () => void;\r\n closeTopModal: () => void;\r\n },\r\n closeAllModals: () => void;\r\n}\r\n\r\nconst openModalCreator = (emitter: EventEmitter) =>\r\n (modal: Modal) => { emitter?.emit?.(EmitterEvents.MODAL, { ...modal, id: v4() }) };\r\n\r\nconst openModalHandler = (emitter: EventEmitter, id: string, modal: Modal) =>\r\n () => { emitter?.emit?.(EmitterEvents.MODAL, { ...modal, id }) };\r\n\r\nconst closeModalHandler = (emitter: EventEmitter, id: string) =>\r\n () => { emitter?.emit?.(EmitterEvents.CLOSE_MODAL, { id }) };\r\n\r\nconst getModalHandlersCreator = (emitter: EventEmitter) => {\r\n const id = v4();\r\n return (modal: Modal) => ({\r\n openModal: openModalHandler(emitter, id, modal),\r\n closeModal: closeModalHandler(emitter, id),\r\n });\r\n}\r\n\r\nconst openTopModalCreator = (emitter: EventEmitter) =>\r\n (modal: Modal) => { emitter?.emit?.(EmitterEvents.TOP_MODAL, { ...modal, id: v4() }) };\r\n\r\nconst openTopModalHandler = (emitter: EventEmitter, id: string, modal: Modal) =>\r\n () => { emitter?.emit?.(EmitterEvents.TOP_MODAL, { ...modal, id }) };\r\n\r\nconst closeTopModalHandler = (emitter: EventEmitter, id: string) =>\r\n () => { emitter?.emit?.(EmitterEvents.CLOSE_TOP_MODAL, { id }) };\r\n\r\nconst getTopModalHandlersCreator = (emitter: EventEmitter) => {\r\n const id = v4();\r\n return (modal: Modal) => ({\r\n openTopModal: openTopModalHandler(emitter, id, modal),\r\n closeTopModal: closeTopModalHandler(emitter, id),\r\n });\r\n}\r\n\r\nconst closeAllModals = (emitter: EventEmitter) =>\r\n () => {\r\n emitter.emit(EmitterEvents.CLOSE_ALL_MODALS);\r\n }\r\n\r\nexport const createModalContextValue = (emitter: EventEmitter): ModalContextValue => {\r\n return ({\r\n emitter,\r\n openModal: openModalCreator(emitter),\r\n getModalHandlers: getModalHandlersCreator(emitter),\r\n openTopModal: openTopModalCreator(emitter),\r\n getTopModalHandlers: getTopModalHandlersCreator(emitter),\r\n closeAllModals: closeAllModals(emitter),\r\n });\r\n}\r\n\r\nexport const ModalContext = React.createContext(null);\r\n","import React, { FC } from \"react\";\r\nimport css from \"./CloseButton.module.css\";\r\n\r\ntype CloseButtonProps = React.DetailedHTMLProps, HTMLDivElement>;\r\n\r\nexport const CloseButton: FC = props => {\r\n return (\r\n

\r\n \r\n
\r\n );\r\n}\r\n","import React, { FC } from \"react\";\r\nimport { Button } from \"../../Form/Button\";\r\nimport \"./GeneralWarningModal.css\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\n\r\ninterface IGeneralWarningModalProps {\r\n onConfirm?(): void;\r\n onClose?(): void;\r\n onCancel?(): void;\r\n message: string;\r\n title: string;\r\n onConfirmButtonText?: string;\r\n yesNoButtons: boolean;\r\n}\r\n\r\nexport const GeneralWarningModal: FC = (props) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
{props.title}
\r\n
\r\n props.onClose?.()} />\r\n
\r\n
\r\n
\r\n
\r\n {props.message}\r\n
\r\n
\r\n {\r\n props.yesNoButtons === true\r\n ?
\r\n { props.onConfirm?.(); props.onClose?.() }}\r\n title=\"Yes\"\r\n type=\"button\"\r\n className=\"Button\"\r\n />\r\n { props.onCancel?.(); props.onClose?.() }}\r\n title=\"No\"\r\n type=\"button\"\r\n className=\"Button\"\r\n />\r\n
\r\n :
\r\n { props.onClose?.() }}\r\n title=\"Ok\"\r\n type=\"button\"\r\n className=\"Button\"\r\n />\r\n
\r\n }\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { FC, useState, useContext, useEffect } from \"react\";\r\nimport \"./AddCrew.css\";\r\nimport { TextInput } from \"../../TextInput\";\r\nimport { Button } from \"../../Form/Button\";\r\nimport { CREATE_CREW_MUTATION } from \"../../../graphql/mutations/CREATE_CREW_MUTATION\";\r\nimport { useMutation } from '@apollo/react-hooks';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { RootState } from '../../../redux/store';\r\nimport to from 'await-to-js';\r\nimport { ModalContext } from \"../../Modal/ModalContext/ModalContext\";\r\nimport { Maybe, CustomCrew } from \"../../../graphql/schema-types\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\nimport { GeneralWarningModal } from \"../../Warnings & errors/GeneralWarningModal/GeneralWarningModal\";\r\nimport { v4 } from \"uuid\";\r\nimport { addCustomCrews } from \"../../../redux/appSlice\";\r\n\r\ninterface AddCrewInterface {\r\n onClose?(): void;\r\n refetch?(): void;\r\n crews: Maybe[] | undefined;\r\n}\r\n\r\nexport const AddCrew: FC = props => {\r\n\r\n const [crewCode, setCrewCode] = useState(\"\");\r\n const [crewDescription, setCrewDescription] = useState(\"\");\r\n const [buttonDisabled, setButtonDisabled] = useState(true);\r\n\r\n const modal = useContext(ModalContext);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const [createCrew] = useMutation(CREATE_CREW_MUTATION, { onCompleted: props.refetch });\r\n\r\n const jobNumber = useSelector((state: RootState) => state.app.start.jobNumber);\r\n const customCrewsByJobNumber = useSelector((state: RootState) => state.app.customCrews);\r\n\r\n const isCrewDescriptionAlreadySavedInDB = props.crews?.filter(crew => crew?.crewDescription === crewDescription);\r\n\r\n useEffect(() => {\r\n if (crewCode.trim() === \"\" || crewDescription.trim() === \"\") {\r\n setButtonDisabled(true);\r\n }\r\n else {\r\n setButtonDisabled(false);\r\n }\r\n }, [crewDescription, crewCode])\r\n\r\n useEffect(() => {\r\n window.onpopstate = (e: any) => {\r\n props?.onClose?.()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const onCancel = () => {\r\n props.onClose?.();\r\n setCrewCode(\"\");\r\n setCrewDescription(\"\");\r\n }\r\n\r\n const onSubmit = async () => {\r\n if (isCrewDescriptionAlreadySavedInDB != null && isCrewDescriptionAlreadySavedInDB?.length > 0) {\r\n modal?.openModal?.({\r\n element: { }}\r\n />\r\n });\r\n }\r\n else {\r\n const where = {\r\n jobNumber: jobNumber as number,\r\n code: crewCode,\r\n description: crewDescription\r\n }\r\n const [, response] = await to(createCrew({ variables: where }));\r\n if (response) {\r\n let crews: Maybe[] = [];\r\n customCrewsByJobNumber.forEach(c => {\r\n if (c?.crewCode !== crewCode) {\r\n crews.push(c);\r\n }\r\n })\r\n crews.push({\r\n crewCode: crewCode,\r\n crewDescription: crewDescription,\r\n jobNumber: jobNumber as number,\r\n id: v4()\r\n })\r\n dispatch(addCustomCrews({ customCrews: crews }))\r\n props.onClose?.();\r\n }\r\n else {\r\n modal?.openModal?.({\r\n element: { }}\r\n />\r\n });\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
Crew Operations
\r\n
\r\n \r\n
\r\n
\r\n
Add New Crew
\r\n
\r\n
Code
\r\n
\r\n { setCrewCode(e.target.value) }}\r\n value={crewCode}\r\n />\r\n
\r\n
\r\n
\r\n
Crew Name
\r\n
\r\n { setCrewDescription(e.target.value) }}\r\n value={crewDescription}\r\n />\r\n
\r\n
\r\n
\r\n onCancel()}\r\n title=\"Cancel\"\r\n type=\"button\"\r\n className=\"Button_Cancel\"\r\n />\r\n\r\n onSubmit()}\r\n title=\"Add\"\r\n type=\"submit\"\r\n className=\"Button_Add\"\r\n disabled={buttonDisabled}\r\n />\r\n
\r\n
\r\n
\r\n \r\n );\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const RESOURCE_CODES_QUERY = gql`\r\n query resourceCodes {\r\n resourceCodes {\r\n\t\tid\r\n\t\tLimit\r\n\t\tResourceCode\r\n\t\tResourceDescription\r\n\t\tResourceID\r\n\t\tResourceType\r\n\t}\r\n }\r\n`;","import React, { FC } from \"react\";\r\n\r\ninterface ICheckBoxProps {\r\n\tchildren?: any;\r\n\tchecked: boolean;\r\n\tonChange(e: React.ChangeEvent): void;\r\n\tname?: string;\r\n\tdisabled?: boolean;\r\n\tclassName?: string;\r\n}\r\n\r\nexport const CheckBox: FC = ({ name, onChange, checked, children, disabled, className }) => {\r\n\treturn (\r\n\t\t
\r\n\t\t\t onChange(e)} />\r\n\t\t\t
{children}
\r\n\t\t
\r\n\t)\r\n}\r\n","import gql from \"graphql-tag\";\r\n\r\nexport const ADD_UPDATE_CREW_RESOURCE_MUTATION = gql`\r\n mutation addCrewResources($where: AddEditCrewResourcesInput!){\r\n addCrewResources(where: $where)\r\n }\r\n`;","import React, { FC, useEffect, useContext } from \"react\";\r\nimport \"./EditCrew.css\";\r\nimport { useQuery } from \"@apollo/react-hooks\";\r\nimport { RESOURCE_CODES_QUERY } from \"../../../graphql/queries/RESOURCE_CODES_QUERY\";\r\nimport { Query, Maybe, CustomCrewResourceComposition } from \"../../../graphql/schema-types\";\r\nimport { TextInput } from \"../../TextInput\";\r\nimport { CheckBox } from \"../../Form/CheckBox\";\r\nimport { useImmer } from \"use-immer\";\r\nimport { toMap } from \"../../../utils/toMap\";\r\nimport { useMutation } from '@apollo/react-hooks';\r\nimport { ADD_UPDATE_CREW_RESOURCE_MUTATION } from \"../../../graphql/mutations/ADD_UPDATE_CREW_RESOURCE_MUTATION\";\r\nimport { Button } from \"../../Form/Button\";\r\nimport { ModalContext } from \"../../Modal/ModalContext/ModalContext\";\r\nimport { toMultiMap } from \"../../../utils/toMultiMap\";\r\nimport { GeneralWarningModal } from \"../../Warnings & errors/GeneralWarningModal/GeneralWarningModal\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\nimport { FullScreenLoadingIndicator } from \"../../Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\n\r\ninterface EditCrewInterface {\r\n onClose?(): void;\r\n crewCode: string;\r\n crewName: string;\r\n crewResoures: Maybe[]\r\n jobNumber: number | \"\";\r\n refetch?(): void;\r\n}\r\n\r\ntype State = {\r\n resources: Maybe[];\r\n crewResourcesByResourceId: { [id: string]: Maybe };\r\n crewResourcesByResourceType: ResourceCodesByResourceType;\r\n};\r\n\r\ntype ResourceCodesByResourceType = { [type: string]: Maybe[] };\r\n\r\nexport const EditCrew: FC = (props) => {\r\n const [state, setState] = useImmer({\r\n resources: [],\r\n crewResourcesByResourceId: {},\r\n crewResourcesByResourceType: {}\r\n });\r\n\r\n const { data, loading } = useQuery>(RESOURCE_CODES_QUERY);\r\n const [addCrewResources] = useMutation(ADD_UPDATE_CREW_RESOURCE_MUTATION, { onCompleted: props?.refetch, fetchPolicy: \"no-cache\" });\r\n\r\n const modal = useContext(ModalContext);\r\n\r\n useEffect(() => {\r\n window.onpopstate = (e: any) => {\r\n props?.onClose?.()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (data == null || data.resourceCodes == null) return;\r\n if (state.resources.length > 0) return;\r\n if (props.crewResoures == null) return;\r\n\r\n const crewResourcesByRecourceId = toMap(props.crewResoures, cr => cr?.resourceID ?? \"\");\r\n\r\n setState(draft => {\r\n draft.crewResourcesByResourceId = crewResourcesByRecourceId;\r\n const res = data.resourceCodes\r\n .filter(rc => rc?.ResourceID !== \"TRK\" && rc?.ResourceID !== \"PAV\" && rc?.ResourceCode !== \"MISCELLANEOUS CODES\")\r\n .map(rc => (\r\n {\r\n id: crewResourcesByRecourceId[rc?.ResourceID!]?.id ?? null,\r\n crewCode: props.crewCode,\r\n dateAdded: crewResourcesByRecourceId[rc?.ResourceID!]?.dateAdded,\r\n JobNumber: crewResourcesByRecourceId[rc?.ResourceID!]?.JobNumber ?? props.jobNumber,\r\n resourceID: rc?.ResourceID,\r\n resourceDescription: rc?.ResourceDescription,\r\n resourceType: rc?.ResourceType,\r\n QTYNeeded: crewResourcesByRecourceId[rc?.ResourceID!] != null ? crewResourcesByRecourceId[rc?.ResourceID!]?.QTYNeeded : 0,\r\n\r\n } as CustomCrewResourceComposition\r\n ));\r\n\r\n const crewResourcesByResourceType = toMultiMap(res, r => r.resourceType ?? \"\");\r\n\r\n Object.keys(crewResourcesByResourceType).forEach(key => {\r\n crewResourcesByResourceType[key].sort((a, b) => a?.resourceDescription! < b?.resourceDescription! ? -1 : 1)\r\n })\r\n\r\n draft.crewResourcesByResourceType = crewResourcesByResourceType;\r\n draft.resources.push(...crewResourcesByResourceType[\"Labor\"], ...crewResourcesByResourceType[\"Equipment\"]);\r\n })\r\n }, [data, props.crewCode, props.crewResoures, props.jobNumber, setState, state.resources.length])\r\n\r\n const onChangeQty = (index: number, e: any) => {\r\n let value: \"\" | number = parseInt(e.target.value);\r\n value = isNaN(value) ? \"\" : value;\r\n setState(draft => {\r\n draft.resources[index]!.QTYNeeded = value as number;\r\n })\r\n }\r\n\r\n const onCheckboxChange = (index: number, checked: boolean) => {\r\n setState(draft => {\r\n if (checked === true) {\r\n draft.resources[index]!.QTYNeeded = 1;\r\n }\r\n\r\n if (checked === false) {\r\n draft.resources[index]!.QTYNeeded = 0;\r\n }\r\n })\r\n }\r\n\r\n const onSubmit = () => {\r\n const _resourcesToUpdate = state.resources\r\n .filter(r => {\r\n const crbr = state.crewResourcesByResourceId[r?.resourceID ?? \"\"];\r\n return crbr != null && crbr.QTYNeeded !== r?.QTYNeeded && r?.QTYNeeded !== 0;\r\n })\r\n\r\n const _resourcesToDelete = state.resources\r\n .filter(r => state.crewResourcesByResourceId[r?.resourceID ?? \"\"] != null && r?.QTYNeeded === 0)\r\n .map(r => r?.id);\r\n\r\n const _resourcesToAdd = state.resources\r\n .filter(r => {\r\n return state.crewResourcesByResourceId[r?.resourceID ?? \"\"] == null && r?.QTYNeeded! > 0;\r\n });\r\n\r\n addCrewResources({ variables: { where: { deletedResources: _resourcesToDelete, updatedResources: _resourcesToUpdate, addedResources: _resourcesToAdd } } });\r\n props.onClose?.();\r\n }\r\n\r\n const showCancelAssignmentModal = () => {\r\n modal?.openModal?.({\r\n element:\r\n props.onClose?.()}\r\n />\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n {loading && }\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
Resource for crew: {props.crewName}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Crew Name
\r\n
Qty Needed
\r\n
Select
\r\n
\r\n {\r\n state?.resources && state?.resources\r\n ?.map((rc: Maybe, index: number) => (\r\n
\r\n
\r\n {rc?.resourceDescription as string}\r\n
\r\n
\r\n { onChangeQty(index, e) }}\r\n value={state.resources?.[index]?.QTYNeeded?.toString() ?? \"\"}\r\n type=\"text\"\r\n placeholder={state.resources?.[index]?.QTYNeeded?.toString() ?? \"0\"}\r\n />\r\n
\r\n
\r\n { onCheckboxChange(index, e.target.checked) }}\r\n checked={state.resources?.[index]?.QTYNeeded as number > 0}\r\n />\r\n
\r\n
\r\n ))\r\n }\r\n
\r\n
\r\n \r\n onSubmit()}\r\n title=\"Save\"\r\n className=\"Button_Save\"\r\n />\r\n
\r\n
\r\n \r\n );\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const CREWS_QUERY = gql`\r\n query crews($jobNumber: Int!){\r\n crews(jobNumber: $jobNumber) {\r\n\t\tid\r\n\t\tcrewCode\r\n\t\tcrewDescription\r\n\t\tjobNumber\r\n\t}\r\n }\r\n`;\r\n","import gql from \"graphql-tag\";\r\n\r\nexport const CREWS_RESOURCES_BY_JOB_NUMBER_QUERY = gql`\r\n query crewResourcesByJobNumber($JobNumber: Int!){\r\n crewResourcesByJobNumber(JobNumber: $JobNumber) {\r\n\t\tid\r\n\t\tcrewCode\r\n\t\tJobNumber\r\n\t\tQTYNeeded\r\n\t\tdateAdded\r\n\t\tresourceID\r\n\t\tresourceDescription\r\n\t\tresourceType\r\n\t}\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const DELETE_CREW_RESOURCES_MUTATION = gql`\r\n mutation deleteCrewResources($resourceIDs: [String]! ){\r\n deleteCrewResources(resourceIDs: $resourceIDs)\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const DELETE_CREW_MUTATION = gql`\r\n mutation deleteCrew($jobNumber: Int!, $crewCode: String!){\r\n deleteCrew(jobNumber: $jobNumber, crewCode: $crewCode)\r\n }\r\n`;","import React, { FC, useState, useEffect, useContext } from \"react\";\r\nimport \"./CrewManagement.css\";\r\nimport { AddCrew } from \"../AddCrew/AddCrew\";\r\nimport { EditCrew } from \"../EditCrew/EditCrew\";\r\nimport { useQuery, useMutation } from \"@apollo/react-hooks\";\r\nimport { Query, CustomCrewResourceComposition, Maybe, CustomCrew } from \"../../../graphql/schema-types\";\r\nimport { CREWS_QUERY } from \"../../../graphql/queries/CREWS_QUERY\";\r\nimport { CREWS_RESOURCES_BY_JOB_NUMBER_QUERY } from \"../../../graphql/queries/CREWS_RESOURCES_BY_JOB_NUMBER_QUERY\";\r\nimport { CheckBox } from \"../../Form/CheckBox\";\r\nimport { DELETE_CREW_RESOURCES_MUTATION } from \"../../../graphql/mutations/DELETE_CREW_RESOURCES\";\r\nimport { Button } from \"../../Form/Button\";\r\nimport { DELETE_CREW_MUTATION } from \"../../../graphql/mutations/DELETE_CREW\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../redux/store\";\r\nimport { ModalContext } from \"../../Modal/ModalContext/ModalContext\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\nimport { FullScreenLoadingIndicator } from \"../../Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\nimport { FullScreenErrorIndicator } from \"../../Modal/ErrorIndicator/FullScreenErrorIndicator\";\r\nimport { addCustomCrews } from \"../../../redux/appSlice\";\r\n\r\ninterface CrewManagementInterface {\r\n onClose?(): void;\r\n}\r\n\r\nenum ButtonTypes {\r\n DELETE_RESOURCES = \"DELETE_RESOURCES\",\r\n DELETE_CREW = \"DELETE_CREW\"\r\n}\r\n\r\nexport const CrewManagement: FC = props => {\r\n\r\n const [currentCrew, setCurrentCrew] = useState();\r\n const [currentCrewName, setCurrentCrewName] = useState();\r\n const [checkBoxes, setCheckBoxes] = useState<{ [id: string]: boolean }>({});\r\n const [buttonType, setButtonType] = useState(null);\r\n\r\n const jobNumber = useSelector((state: RootState) => state.app.start.jobNumber);\r\n\r\n const customCrewsByJobNumber = useSelector((state: RootState) => state.app.customCrews);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const { loading, error, data, refetch } = useQuery>(CREWS_QUERY, {\r\n variables: { jobNumber },\r\n skip: jobNumber == null || jobNumber === \"\",\r\n fetchPolicy: \"no-cache\"\r\n });\r\n\r\n const { data: crewR, refetch: refCrewR } = useQuery>(CREWS_RESOURCES_BY_JOB_NUMBER_QUERY, {\r\n variables: { JobNumber: jobNumber },\r\n skip: jobNumber == null || jobNumber === \"\",\r\n fetchPolicy: \"no-cache\"\r\n });\r\n\r\n const [deleteCrewResources] = useMutation(DELETE_CREW_RESOURCES_MUTATION, { onCompleted: () => refCrewR(), fetchPolicy: \"no-cache\" });\r\n const [deleteCrew, { loading: loadingDeletingCrew }] = useMutation(DELETE_CREW_MUTATION, { onCompleted: () => refetch(), fetchPolicy: \"no-cache\" });\r\n\r\n const modal = useContext(ModalContext);\r\n\r\n const showAddCrewModal = () => {\r\n modal?.openModal?.({\r\n element: refetch()}\r\n crews={data?.crews}\r\n />\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n if (data == null) return;\r\n setCurrentCrew(data.crews?.[0]?.crewCode);\r\n setCurrentCrewName(data.crews?.[0]?.crewDescription);\r\n }, [data])\r\n\r\n useEffect(() => {\r\n window.onpopstate = (e: any) => {\r\n props?.onClose?.()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n document.body.style.overflow = 'hidden'\r\n return () => {\r\n document.body.removeAttribute('style')\r\n }\r\n }, [])\r\n\r\n let currentCrewResources: CustomCrewResourceComposition[] = crewR?.crewResourcesByJobNumber\r\n .filter(cr => cr?.crewCode === currentCrew) as CustomCrewResourceComposition[];\r\n\r\n let sortedCurrentCrewResources = [...(currentCrewResources ?? [])]\r\n .sort((a, b) => a.resourceType! < b.resourceType! ? 1 : -1)\r\n .sort((n, p) => n.resourceID! > p.resourceID! ? 1 : -1);\r\n\r\n useEffect(() => {\r\n if (sortedCurrentCrewResources == null) return;\r\n if (sortedCurrentCrewResources?.length === 0) {\r\n setButtonType(ButtonTypes.DELETE_CREW);\r\n }\r\n else {\r\n setButtonType(ButtonTypes.DELETE_RESOURCES)\r\n }\r\n }, [crewR, sortedCurrentCrewResources])\r\n\r\n const onCheckBoxesChange = (e: React.ChangeEvent, checkBoxValue: string) => {\r\n const checked = e.target.checked;\r\n const _checkboxes = { ...checkBoxes };\r\n if (checked === false) {\r\n delete _checkboxes[checkBoxValue];\r\n setCheckBoxes(_checkboxes);\r\n return;\r\n }\r\n setCheckBoxes({ ...checkBoxes, [checkBoxValue]: checked });\r\n }\r\n\r\n const onSubmit = () => {\r\n deleteCrewResources({ variables: { resourceIDs: Object.keys(checkBoxes) } })\r\n }\r\n\r\n const onDeleteCrew = () => {\r\n deleteCrew({ variables: { jobNumber, crewCode: currentCrew } });\r\n let crews: Maybe[] = [];\r\n customCrewsByJobNumber.forEach(c => {\r\n if (c?.crewCode !== currentCrew) {\r\n crews.push(c);\r\n }\r\n })\r\n dispatch(addCustomCrews({ customCrews: crews }))\r\n }\r\n\r\n const showEditCrewModal = () => {\r\n modal?.openModal?.({\r\n element:\r\n refCrewR()}\r\n />\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n {loading && }\r\n {loadingDeletingCrew && }\r\n {error != null && }\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
Crew Management
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Crew Name\r\n
\r\n {\r\n data && data?.crews?.map(c => (\r\n { setCurrentCrew(c?.crewCode); setCurrentCrewName(c?.crewDescription); }}\r\n >\r\n {c?.crewDescription}\r\n
\r\n ))\r\n }\r\n
\r\n
\r\n
\r\n
\r\n {currentCrewName != null ? currentCrewName : \"\"}\r\n
\r\n\r\n
\r\n {\r\n sortedCurrentCrewResources != null && sortedCurrentCrewResources\r\n .map((cr, index: number) => (\r\n
\r\n onCheckBoxesChange(e, cr?.id as string)}\r\n />\r\n
\r\n {cr?.resourceID}\r\n
\r\n
\r\n {cr?.resourceDescription}\r\n
\r\n
\r\n {cr?.QTYNeeded}\r\n
\r\n
\r\n ))\r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {\r\n buttonType === ButtonTypes.DELETE_RESOURCES ?\r\n (\r\n onSubmit()}\r\n title=\"Delete Selected Resource\"\r\n className=\"Delete_Resources Button\"\r\n disabled={true ? Object.keys(checkBoxes).length === 0 : false}\r\n />\r\n )\r\n : (\r\n onDeleteCrew()}\r\n title=\"Delete Selected Crew\"\r\n className=\"Delete_Resources Button\"\r\n disabled={currentCrew != null ? false : true}\r\n />\r\n )\r\n }\r\n
\r\n
\r\n
\r\n \r\n \r\n );\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const SAVE = gql`\r\n mutation save($data: SaveInput!) {\r\n save(data: $data)\r\n }\r\n`;","import React, { FC } from \"react\";\r\nimport { Button } from \"../../Form/Button\";\r\nimport \"./SaveSuccesful.css\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\n\r\ninterface SaveSuccesfulInterface {\r\n onClose?(): void;\r\n}\r\n\r\nexport const SaveSuccesful: FC = props => {\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
Resource Schedule
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Save Succesful\r\n
\r\n
\r\n
\r\n props.onClose?.()}\r\n title=\"OK\"\r\n type=\"button\"\r\n className=\"Button\"\r\n />\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { FC } from \"react\";\r\nimport { Button } from \"../../Form/Button\";\r\nimport \"./SaveError.css\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\n\r\ninterface SaveSuccesfulInterface {\r\n onClose?(): void;\r\n}\r\n\r\nexport const SaveError: FC = props => {\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
Resource Schedule
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Save was unsuccesfull!\r\n
\r\n
\r\n
\r\n props.onClose?.()}\r\n title=\"OK\"\r\n type=\"button\"\r\n className=\"Button\"\r\n />\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { FC } from \"react\";\r\nimport { Button } from \"../../Form/Button\";\r\nimport \"./NothingToSave.css\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\n\r\ninterface NothingToSaveInterface {\r\n onClose?(): void;\r\n}\r\n\r\nexport const NothingToSave: FC = props => {\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
Nothing To Save
\r\n props.onClose?.()} />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n No Data entered for curent period. Review your schedule.\r\n
\r\n
\r\n
\r\n props.onClose?.()}\r\n title=\"OK\"\r\n type=\"button\"\r\n className=\"Button\"\r\n />\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { FC } from \"react\";\r\nimport { Button } from \"../../Form/Button\";\r\nimport \"./QtyError.css\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\n\r\ninterface QtyErrorInterface {\r\n onClose?(): void;\r\n}\r\n\r\nexport const QtyError: FC = props => {\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
Qty Error
\r\n props.onClose?.()} />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Missing QTY\r\n
\r\n
\r\n
\r\n props.onClose?.()}\r\n title=\"OK\"\r\n type=\"button\"\r\n className=\"Button\"\r\n />\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import gql from \"graphql-tag\";\r\n\r\nexport const ADD_MASTER_CREW_SCHEDULES = gql`\r\n mutation addMasterCrewSchedules($data: MasterCrewSchedulesInput!) {\r\n addMasterCrewSchedules(data: $data)\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const ADD_MASTER_CREW_SCHEDULES_PAVING = gql`\r\n mutation addMasterCrewSchedulesPaving($data: MasterCrewSchedulesInputPaving!) {\r\n addMasterCrewSchedulesPaving(data: $data)\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const ITEMS_IN_PAVING_CALENDAR_QUERY = gql`\r\n query itemsInPavingCalendar($date: Date!) {\r\n itemsInPavingCalendar(date: $date) {\r\n uID\r\n date\r\n jobNumber\r\n jobName\r\n manager\r\n tonnage\r\n plant\r\n nrOfTrucks\r\n typeOfTrucks\r\n broker\r\n material\r\n operationType\r\n shift\r\n locationIndex\r\n }\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const BOOK_YOUR_DATE_ON_PAVING = gql`\r\n mutation bookYourDateOnPaving($data: BookYourDateOnPavingInput!){\r\n bookYourDateOnPaving(data: $data)\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const DELETE_BOOKED_DATE_ITEMS = gql`\r\n mutation deleteBookedDateItems($data: [PavingCalendarInput!]!){\r\n deleteBookedDateItems(data: $data)\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const TRUCKING_DATAS_QUERY = gql`\r\n query truckingDatas {\r\n truckingDatas {\r\n uID\r\n value\r\n key\r\n type\r\n\t }\r\n }\r\n`;","import React, { FC, CSSProperties, useEffect, useRef, useReducer, ReactNode, useState } from \"react\";\r\nimport flatpickr from \"flatpickr\";\r\nimport { Instance } from \"flatpickr/dist/types/instance\";\r\nimport moment from \"moment\";\r\nimport \"flatpickr/dist/themes/material_green.css\";\r\nimport { Maybe } from \"../../../../graphql/schema-types\";\r\n\r\nexport interface ISelectMultipleDatesProps {\r\n currentDates: string[] | null | undefined;\r\n disabled?: boolean;\r\n /**\r\n * Fires only when the picker changes the date\r\n * @param date number\r\n */\r\n onPickerChange?(dates: string[]): void;\r\n containerStyle?: CSSProperties;\r\n children?(state: IState): ReactNode;\r\n lockedDays?: string[] | undefined;\r\n dates?: { [date: string]: boolean };\r\n redDates?: Maybe[];\r\n lockedItems3WeekRange?: string[] | undefined;\r\n}\r\n\r\ninterface IState {\r\n currentDate: string | null;\r\n dates: string[] | null;\r\n visible: boolean;\r\n previousAction?: IAction;\r\n}\r\n\r\nenum ActionTypes {\r\n SET_PICKER_DATES = \"SET_PICKER_DATE\",\r\n SET_PROPS_DATES = \"SET_PROPS_DATE\",\r\n SET_VISIBILITY = \"SET_VISIBILITY\"\r\n}\r\n\r\ninterface IAction {\r\n type: ActionTypes;\r\n payload?: T;\r\n}\r\n\r\nconst getInitialState = (): IState => ({\r\n dates: null,\r\n currentDate: null,\r\n visible: false,\r\n});\r\n\r\nconst getDateFromSelectedDates = (date: Date) => {\r\n let _date: Date;\r\n if (date == null) {\r\n _date = moment().toDate();\r\n } else {\r\n _date = date;\r\n }\r\n return _date\r\n}\r\n\r\nconst mainReducer = (state: IState, action: IAction): IState => {\r\n switch (action.type) {\r\n\r\n case ActionTypes.SET_PICKER_DATES: {\r\n const dates = action.payload as Date[];\r\n let _dates: string[] = [];\r\n\r\n dates.forEach((date) => {\r\n const d = getDateFromSelectedDates(date);\r\n const _date = moment(d).format(\"YYYY.MM.DD\")\r\n _dates.push(_date);\r\n })\r\n\r\n return ({\r\n ...state,\r\n dates: _dates,\r\n });\r\n }\r\n\r\n case ActionTypes.SET_PROPS_DATES: {\r\n let dates: string[] = action.payload;\r\n\r\n return ({\r\n ...state,\r\n dates,\r\n });\r\n }\r\n\r\n case ActionTypes.SET_VISIBILITY: {\r\n const visible = action.payload as boolean;\r\n return ({\r\n ...state,\r\n visible,\r\n });\r\n }\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return state;\r\n}\r\n\r\nconst reducer = (state: IState, action: IAction): IState => {\r\n return ({\r\n ...mainReducer(state, action),\r\n previousAction: action,\r\n });\r\n}\r\n\r\nexport const SelectMultipleDates: FC = props => {\r\n const [state, dispatch] = useReducer(reducer, getInitialState())\r\n const [lockedDays, setLockedDays] = useState([]);\r\n\r\n const fp = useRef(null);\r\n const elem = useRef(null);\r\n\r\n // on props change, the instance should reflect that\r\n useEffect(() => {\r\n if (props.currentDates == null) return;\r\n dispatch({ type: ActionTypes.SET_PROPS_DATES, payload: props.currentDates });\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n fp.current != null\r\n ? fp.current.setDate(\r\n props.currentDates.map(date => moment(date, \"YYYY.MM.DD\").toDate())\r\n )\r\n : null;\r\n }, [props.currentDates])\r\n\r\n // destroy picker on state.visible === false\r\n useEffect(() => {\r\n if (state.visible) return;\r\n if (fp.current == null) return;\r\n destroy();\r\n }, [state.visible]);\r\n\r\n useEffect(() => {\r\n let _state: string[] = [];\r\n if (props.lockedDays != null && props.lockedDays.length > 0) {\r\n props.lockedDays.forEach(day => {\r\n const _day = moment(day).format(\"DD MM YYYY\");\r\n _state.push(_day);\r\n })\r\n }\r\n if (props.lockedItems3WeekRange != null && props.lockedItems3WeekRange.length > 0) {\r\n props.lockedItems3WeekRange.forEach(day => {\r\n _state.push(day);\r\n })\r\n }\r\n setLockedDays(_state);\r\n }, [props.lockedDays, props.lockedItems3WeekRange])\r\n\r\n const onWheel = useRef(() => {\r\n dispatch({ type: ActionTypes.SET_VISIBILITY, payload: false });\r\n });\r\n\r\n const destroy = () => {\r\n document.removeEventListener(\"wheel\", onWheel.current);\r\n if (fp.current == null) return;\r\n fp.current.close();\r\n fp.current.destroy();\r\n (fp.current as any) = null;\r\n };\r\n\r\n useEffect(() => {\r\n return () => {\r\n destroy();\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const onDayCreate = (dObj: any, dStr: any, fp: any, dayElem: HTMLElement & any) => {\r\n if (props?.lockedDays?.includes(moment(dayElem.dateObj).format(\"YYYY.MM.DD\"))) {\r\n dayElem.innerHTML = `
${dayElem.innerHTML}
`\r\n }\r\n\r\n if (props?.redDates?.includes(moment(dayElem.dateObj).format(\"YYYY.MM.DD\"))) {\r\n dayElem.innerHTML = `
${dayElem.innerHTML}
`\r\n }\r\n if (props?.dates?.[moment(dayElem.dateObj).format(\"YYYY.MM.DD\")] !== true) return;\r\n dayElem.innerHTML = `${dayElem.innerHTML}`\r\n }\r\n\r\n useEffect(() => {\r\n if (fp.current == null) return;\r\n fp.current.set(\"onDayCreate\", onDayCreate)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.currentDates])\r\n\r\n const create = () => {\r\n if (elem.current == null) return;\r\n if (fp.current != null) return;\r\n (fp.current as any) = flatpickr(elem.current, {\r\n onChange(selectedDates, dateStr, instance) {\r\n dispatch({ type: ActionTypes.SET_PICKER_DATES, payload: selectedDates });\r\n\r\n props.onPickerChange?.(selectedDates.map(date => moment(date).format(\"YYYY.MM.DD\")));\r\n },\r\n onReady(selectedDates, dateStr, instance) {\r\n instance.open();\r\n },\r\n onOpen(selectedDates, dateStr, instance) {\r\n dispatch({ type: ActionTypes.SET_VISIBILITY, payload: true });\r\n },\r\n onClose(selectedDates, dateStr, instance) {\r\n dispatch({ type: ActionTypes.SET_VISIBILITY, payload: false });\r\n },\r\n disableMobile: true,\r\n showMonths: 1,\r\n onDayCreate,\r\n dateFormat: \"d m Y\",\r\n mode: \"multiple\",\r\n minDate: (moment.utc(moment().startOf('month').format(\"YYYY-MM-DD\")).unix()) * 1000,\r\n maxDate: ((moment.utc(moment().startOf('month').add(6, 'months').format(\"YYYY-MM-DD\")).unix()) * 1000),\r\n disable: lockedDays,\r\n });\r\n document.addEventListener(\"wheel\", onWheel.current);\r\n if (props.currentDates != null) {\r\n fp.current!.setDate(\r\n props.currentDates.map(date => moment(date, \"YYYY.MM.DD\").toDate())\r\n );\r\n }\r\n };\r\n\r\n return (\r\n
Select Days
\r\n //
Selected Days: {state.dates?.map(s => moment(s as string, \"YYYY.MM.DD\").format('MM/DD/YYYY') + \" \")}
\r\n );\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const JOB_INFO_QUERY = gql`\r\n query JOB_INFO_QUERY($where: JobInfoInput!){\r\n jobInfo(where: $where) {\r\n uID\r\n jobNumber_Date\r\n searchGSI_JobNumber\r\n tableauGSI_Tableau\r\n date \r\n areaManager\r\n jobName\r\n pmpe\r\n superIntendent\r\n foreman\r\n resourceName\r\n resourceID\r\n resourceType\r\n resourceQTY \r\n description\r\n additionalResourcesComments\r\n locationIndex \r\n pavingForeman\r\n pavingSuperIntendent\r\n jobMap\r\n }\r\n }\r\n`;\r\n","import gql from \"graphql-tag\";\r\n\r\nexport const MASTER_CREW_SCHEDULES_QUERY = gql`\r\n query masterCrewSchedules($where: MasterCrewSchedulesQueryInput!) {\r\n masterCrewSchedules(where: $where) {\r\n\t\t\tuID \r\n\t\t\tjobNumber \r\n\t\t\tlocationIndex \r\n\t\t\tsearchGSI_JobNumber \r\n\t\t\ttableauGSI_Tableau\r\n\t\t\tdate \r\n\t\t\tbroker\r\n \ttype\r\n \tqty\r\n\t\t\tmaterial\r\n \tloadSite\r\n \tshift\r\n \tnotes\r\n\t\t\toperationType\r\n\t\t\taddedFromPaving\r\n\t\t\tupdated\r\n\t\t}\r\n\t}\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const SUPER_INTENDENT_PAVING_CALENDAR_QUERY = gql`\r\n query superIntendentPavingCalendar($where: SuperIntendentPavingCalendarQueryInput!){\r\n superIntendentPavingCalendar(where: $where) {\r\n\t\t\tpk\r\n\t\t\tdate\r\n\t\t\tstatus\r\n\t\t\tjobNumbersBlocked\r\n\t\t\tnoWorkForForemans\r\n\t\t}\r\n }\r\n`;\r\n","import React, { FC, CSSProperties, useEffect, useRef, useReducer, ReactNode } from \"react\";\r\nimport flatpickr from \"flatpickr\";\r\nimport { Instance } from \"flatpickr/dist/types/instance\";\r\nimport moment from \"moment\";\r\nimport { Maybe } from \"../../../graphql/schema-types\";\r\n\r\nexport interface IDateInputProps {\r\n date: string | null | undefined;\r\n disabled?: boolean;\r\n /**\r\n * Fires only when the picker changes the date\r\n * @param date number\r\n */\r\n onPickerChange?(date: string): void;\r\n containerStyle?: CSSProperties;\r\n children?(state: IState): ReactNode;\r\n dates?: { [date: string]: boolean };\r\n redDates?: Maybe[];\r\n lockedDays?: string[];\r\n lockedDays3WeekRange?: string[];\r\n}\r\n\r\ninterface IState {\r\n date: string | null;\r\n visible: boolean;\r\n previousAction?: IAction;\r\n}\r\n\r\nenum ActionTypes {\r\n /** SET_ISO_DATE */\r\n SET_PICKER_DATE = \"SET_PICKER_DATE\",\r\n /** SET_UNIX_DATE */\r\n SET_PROPS_DATE = \"SET_PROPS_DATE\",\r\n SET_VISIBILITY = \"SET_VISIBILITY\"\r\n}\r\n\r\ninterface IAction {\r\n type: ActionTypes;\r\n payload?: T;\r\n}\r\n\r\nconst getInitialState = (): IState => ({\r\n date: null,\r\n visible: false,\r\n});\r\n\r\nconst getDateFromSelectedDates = (dates: Date[]) => {\r\n let date: Date;\r\n if (dates == null || dates[0] == null) {\r\n date = moment().toDate();\r\n } else {\r\n date = dates[0];\r\n }\r\n return date\r\n}\r\n\r\nconst mainReducer = (state: IState, action: IAction): IState => {\r\n switch (action.type) {\r\n\r\n case ActionTypes.SET_PICKER_DATE: {\r\n const dates = action.payload as Date[];\r\n const date = getDateFromSelectedDates(dates);\r\n const _date = moment(date).format(\"YYYY.MM.DD\")\r\n return ({\r\n ...state,\r\n date: _date,\r\n });\r\n }\r\n\r\n case ActionTypes.SET_PROPS_DATE: {\r\n const date = action.payload as string;\r\n return ({\r\n ...state,\r\n date,\r\n });\r\n }\r\n\r\n case ActionTypes.SET_VISIBILITY: {\r\n const visible = action.payload as boolean;\r\n return ({\r\n ...state,\r\n visible,\r\n });\r\n }\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return state;\r\n}\r\n\r\nconst reducer = (state: IState, action: IAction): IState => {\r\n return ({\r\n ...mainReducer(state, action),\r\n previousAction: action,\r\n });\r\n}\r\n\r\nexport const DateInput: FC = props => {\r\n const [state, dispatch] = useReducer(reducer, getInitialState())\r\n\r\n const fp = useRef(null);\r\n const elem = useRef(null);\r\n\r\n // on props change, the instance should reflect that\r\n useEffect(() => {\r\n if (props.date == null) return;\r\n dispatch({ type: ActionTypes.SET_PROPS_DATE, payload: props.date });\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n fp.current != null\r\n ? fp.current.setDate(moment(props.date, \"YYYY.MM.DD\").toDate())\r\n : null;\r\n }, [props.date])\r\n\r\n // destroy picker on state.visible === false\r\n useEffect(() => {\r\n if (state.visible) return;\r\n if (fp.current == null) return;\r\n destroy();\r\n }, [state.visible])\r\n\r\n const onWheel = useRef(() => {\r\n dispatch({ type: ActionTypes.SET_VISIBILITY, payload: false });\r\n });\r\n\r\n const destroy = () => {\r\n document.removeEventListener(\"wheel\", onWheel.current);\r\n if (fp.current == null) return;\r\n fp.current.close();\r\n fp.current.destroy();\r\n (fp.current as any) = null;\r\n };\r\n\r\n useEffect(() => {\r\n create();\r\n return () => {\r\n destroy();\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.dates, props.redDates, props.lockedDays])\r\n\r\n const onDayCreate = (dObj: any, dStr: any, fp: any, dayElem: HTMLElement & any) => {\r\n if (props?.lockedDays?.includes(moment(dayElem.dateObj).format(\"YYYY.MM.DD\"))) {\r\n dayElem.innerHTML = `
${dayElem.innerHTML}
`\r\n }\r\n\r\n if (props?.lockedDays3WeekRange?.includes(moment(dayElem.dateObj).format(\"YYYY.MM.DD\"))) {\r\n dayElem.innerHTML = `
${dayElem.innerHTML}
`\r\n }\r\n\r\n if (props?.redDates?.includes(moment(dayElem.dateObj).format(\"YYYY.MM.DD\"))) {\r\n dayElem.innerHTML = `
${dayElem.innerHTML}
`\r\n }\r\n if (props?.dates?.[moment(dayElem.dateObj).format(\"YYYY.MM.DD\")] !== true) return;\r\n dayElem.innerHTML = `${dayElem.innerHTML}`\r\n }\r\n\r\n useEffect(() => {\r\n if (fp.current == null) return;\r\n fp.current.set(\"onDayCreate\", onDayCreate)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.dates])\r\n\r\n const create = () => {\r\n if (elem.current == null) return;\r\n if (fp.current != null) return;\r\n (fp.current as any) = flatpickr(elem.current, {\r\n onChange(selectedDates, dateStr, instance) {\r\n dispatch({ type: ActionTypes.SET_PICKER_DATE, payload: selectedDates });\r\n props.onPickerChange?.(moment(getDateFromSelectedDates(selectedDates)).format(\"YYYY.MM.DD\"))\r\n },\r\n onReady(selectedDates, dateStr, instance) {\r\n instance.open();\r\n },\r\n onOpen(selectedDates, dateStr, instance) {\r\n dispatch({ type: ActionTypes.SET_VISIBILITY, payload: true });\r\n },\r\n onClose(selectedDates, dateStr, instance) {\r\n dispatch({ type: ActionTypes.SET_VISIBILITY, payload: false });\r\n },\r\n disableMobile: true,\r\n showMonths: 3,\r\n inline: true,\r\n prevArrow: '
',\r\n nextArrow: '
',\r\n onDayCreate,\r\n dateFormat: \"d m Y\",\r\n minDate: (moment.utc(moment().startOf('month').format(\"YYYY-MM-DD\")).unix()) * 1000,\r\n maxDate: ((moment.utc(moment().startOf('month').add(12, 'months').format(\"YYYY-MM-DD\")).unix()) * 1000),\r\n });\r\n document.addEventListener(\"wheel\", onWheel.current);\r\n if (props.date != null) {\r\n fp.current!.setDate(moment(props.date, \"YYYY.MM.DD\").toDate());\r\n }\r\n };\r\n\r\n return (\r\n
\r\n );\r\n}","import React, { FC, useState, useEffect, useContext, useCallback } from \"react\";\r\nimport \"./BookDatePaving.css\";\r\nimport moment from \"moment\";\r\nimport { useImmer } from \"use-immer\";\r\nimport { useQuery, useMutation, useLazyQuery } from \"@apollo/react-hooks\";\r\nimport { ITEMS_IN_PAVING_CALENDAR_QUERY } from \"../../../../graphql/queries/ITEMS_IN_PAVING_CALENDAR_QUERY\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../../redux/store\";\r\nimport { PavingCalendar, Query, AddMasterCrewSchedulesPavingInput, JobInfoFullInput, BookYourDateOnPavingInput, PavingCalendarInput, AddMasterCrewSchedulesInput, Maybe, SuperIntendentPavingCalendar } from \"../../../../graphql/schema-types\";\r\nimport { BOOK_YOUR_DATE_ON_PAVING } from \"../../../../graphql/mutations/BOOK_YOUR_DATE_ON_PAVING\";\r\nimport to from \"await-to-js\";\r\nimport { FullScreenLoadingIndicator } from \"../../../Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\nimport { FullScreenErrorIndicator } from \"../../../Modal/ErrorIndicator/FullScreenErrorIndicator\";\r\nimport { CheckBox } from \"../../../Form/CheckBox\";\r\nimport { DELETE_BOOKED_DATE_ITEMS } from \"../../../../graphql/mutations/DELETE_BOOKED_DATE_ITEMS\";\r\nimport { TRUCKING_DATAS_QUERY } from \"../../../../graphql/queries/TRUCKING_DATAS_QUERY\";\r\nimport { CloseButton } from \"../../../Form/CloseButton\";\r\nimport { SelectMultipleDates } from \"../SelectMultipleDates/SelectMultipleDates\";\r\nimport \"flatpickr/dist/themes/material_green.css\";\r\nimport { GeneralWarningModal } from \"../../../Warnings & errors/GeneralWarningModal/GeneralWarningModal\";\r\nimport { ModalContext } from \"../../../Modal/ModalContext/ModalContext\";\r\nimport { LocationApp, addPavingFromPavingCalendarResources, deleteResourcesFromJIAndTrucking } from \"../../../../redux/appSlice\";\r\nimport { JOB_INFO_QUERY } from \"../../../../graphql/queries/JOB_INFO_QUERY\";\r\nimport { MASTER_CREW_SCHEDULES_QUERY } from \"../../../../graphql/queries/MASTER_CREW_SCHEDULES_QUERY\";\r\nimport { toMap } from \"../../../../utils/toMap\";\r\nimport { toMultiMap } from \"../../../../utils/toMultiMap\";\r\nimport { SUPER_INTENDENT_PAVING_CALENDAR_QUERY } from \"../../../../graphql/queries/SUPER_INTENDENT_PAVING_CALENDAR_QUERY\";\r\n\r\ninterface IBookDateProps {\r\n onClose?(): void;\r\n date: string;\r\n dateFormat: string;\r\n refetchItemInCalendar?(): void;\r\n dates?: Maybe[] | undefined;\r\n redDates?: Maybe[] | undefined;\r\n nrOfForemans: number | null;\r\n lockedItems3WeekRange: string[] | undefined;\r\n}\r\ninterface DatesArray {\r\n dates: string[] | null | undefined\r\n}\r\n\r\nconst getInitialBookState = (date: string): PavingCalendar & DatesArray => {\r\n return ({\r\n plant: \"\",\r\n tonnage: null,\r\n broker: \"\",\r\n nrOfTrucks: null,\r\n typeOfTrucks: \"\",\r\n material: \"\",\r\n operationType: \"\",\r\n shift: \"\",\r\n location: 0,\r\n dates: [date]\r\n })\r\n}\r\n\r\nexport const BookDatePavingComponent: FC = props => {\r\n const [bookData, setBookData] = useImmer(getInitialBookState(props.date));\r\n const [checkedItem, setCheckedItem] = useState<{ [key: number]: { checked: boolean, item: PavingCalendar } }>({});\r\n const [addButtonStatus, setAddButtonStatus] = useState(true);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const days = useSelector((state: RootState) => state.app.schedule.locations);\r\n const jobNumberInformations = useSelector((state: RootState) => state.app.jobNumberInformations);\r\n const jobNumber = useSelector((state: RootState) => state.app.start.jobNumber);\r\n const locationState = useSelector((state: RootState) => state.app.schedule.locations) as unknown as LocationApp\r\n \r\n \r\n const locationsArray: { id: any; value: any; }[] = [{id: 0, value: \"Location\"}];\r\n\r\n locationState.forEach(function(element: { name: any; }, index: any) {\r\n const locationObj = {\r\n id: parseInt(index),\r\n value: index\r\n };\r\n locationsArray.push(locationObj);\r\n });\r\n const { loading, error, data, refetch } = useQuery>(ITEMS_IN_PAVING_CALENDAR_QUERY, {\r\n variables: { date: (moment.utc(props.date, \"YYYY-MM-DD\").unix()) * 1000 },\r\n skip: props.date == null,\r\n fetchPolicy: \"no-cache\"\r\n });\r\n\r\n const [getJobInfos, { loading: loadingJobInfo, error: errorJobInfo, data: datesJobInfo, refetch: refetchJobInfo }] = useLazyQuery>(JOB_INFO_QUERY, {\r\n fetchPolicy: \"no-cache\"\r\n });\r\n\r\n const [getTrucking, { loading: loadingTrucking, error: errorTrucking, data: datesTrucking, refetch: refetchTrucking }] = useLazyQuery>(MASTER_CREW_SCHEDULES_QUERY, {\r\n fetchPolicy: \"no-cache\"\r\n });\r\n\r\n const { data: trucking } = useQuery>(TRUCKING_DATAS_QUERY);\r\n\r\n const { data: lockedDaysData, refetch: refetchLockedDays } = useQuery>(SUPER_INTENDENT_PAVING_CALENDAR_QUERY, {\r\n variables: {\r\n where: {\r\n startDate: (moment.utc(moment().startOf('month').format(\"YYYY-MM-DD\")).unix()) * 1000,\r\n endDate: (moment.utc(moment().startOf('month').add(6, 'months').format(\"YYYY-MM-DD\")).unix()) * 1000,\r\n }\r\n },\r\n fetchPolicy: \"no-cache\"\r\n });\r\n\r\n const [bookYourDateOnPaving] = useMutation(BOOK_YOUR_DATE_ON_PAVING, { onCompleted: refetch });\r\n\r\n const [deleteBookedDateItems, { loading: loadingDelete }] = useMutation(DELETE_BOOKED_DATE_ITEMS, { onCompleted: refetch });\r\n\r\n const materials = useSelector((state: RootState) => state.app.materialDatas);\r\n\r\n const modal = useContext(ModalContext);\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n if (\r\n bookData.manager === \"\" ||\r\n bookData.nrOfTrucks == null ||\r\n bookData.nrOfTrucks === 0 ||\r\n bookData.nrOfTrucks.toString() === \"\" ||\r\n bookData.typeOfTrucks === \"\" ||\r\n bookData.shift === \"\" ||\r\n bookData.location === 0 ||\r\n bookData.broker === \"\" ||\r\n bookData.plant === \"\" ||\r\n bookData.material === \"\" ||\r\n bookData.tonnage == null ||\r\n bookData.tonnage === 0 ||\r\n bookData.tonnage.toString() === \"\" ||\r\n bookData.dates?.length === 0) {\r\n setAddButtonStatus(true)\r\n }\r\n else {\r\n setAddButtonStatus(false);\r\n }\r\n }, [setAddButtonStatus, bookData])\r\n\r\n useEffect(() => {\r\n window.onpopstate = (e: any) => {\r\n props?.onClose?.()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (bookData.material === \"\") return;\r\n const operationTypeForSelectedMaterial = materials.filter(material => material?.value === bookData.material)\r\n\r\n setBookData(draft => {\r\n draft.operationType = operationTypeForSelectedMaterial?.[0]?.operationType as string;\r\n })\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [bookData.material])\r\n\r\n useEffect(() => {\r\n if (bookData.dates == null || bookData.dates.length === 0) return;\r\n\r\n const _datesSorted: string[] | undefined = [...bookData.dates].sort();\r\n\r\n getJobInfos({\r\n variables: {\r\n where:\r\n {\r\n jobNumber: jobNumberInformations?.jobNumber as number,\r\n startDate: (moment.utc(_datesSorted?.[0], \"YYYY-MM-DD\").unix()) * 1000,\r\n endDate: (moment.utc(_datesSorted?.[_datesSorted?.length - 1], \"YYYY-MM-DD\").unix()) * 1000\r\n }\r\n },\r\n });\r\n\r\n getTrucking({\r\n variables: {\r\n where:\r\n {\r\n jobNumber: jobNumberInformations?.jobNumber as number,\r\n startDate: (moment.utc(_datesSorted?.[0], \"YYYY-MM-DD\").unix()) * 1000,\r\n endDate: (moment.utc(_datesSorted?.[_datesSorted?.length - 1], \"YYYY-MM-DD\").unix()) * 1000\r\n }\r\n },\r\n });\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [bookData.dates, getJobInfos, getTrucking])\r\n\r\n useEffect(() => {\r\n if (lockedDaysData == null) return;\r\n let lockedDays: string[] = checkForLockedDays();\r\n _lockedDays.forEach(ld => {\r\n if (!lockedDays.includes(ld)) lockedDays?.push(ld)\r\n })\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [lockedDaysData])\r\n\r\n const getDates = useCallback(() => {\r\n return toMap(props.dates ?? [], pavingCalendar => pavingCalendar?.date!, () => true);\r\n }, [props.dates])\r\n\r\n const getDatesWithMoreThanThreeJN = () => {\r\n const limitItemsNumber = props.nrOfForemans != null && props.nrOfForemans > 0 ? props.nrOfForemans : 3;\r\n\r\n const groupedDates = toMultiMap(props.redDates ?? [], date => date?.date!);\r\n const dates = Object.keys(groupedDates)\r\n .map(date => groupedDates[date].map(d => d?.jobNumber))\r\n .map((gd, i) => gd.filter((item, index) => gd.indexOf(item) === index).length >= limitItemsNumber\r\n ? Object.keys(groupedDates)[i]\r\n : null\r\n )\r\n return dates.filter(d => d != null)\r\n }\r\n\r\n const shift = [\r\n {\r\n key: 1,\r\n value: \"N\"\r\n },\r\n {\r\n key: 2,\r\n value: \"D\"\r\n }\r\n ];\r\n\r\n const _brokerData = trucking?.truckingDatas\r\n ?.filter(td => td?.type === \"Broker\")\r\n ?.sort((a, b) => a?.value! < b?.value! ? -1 : 1);\r\n\r\n\r\n if (_brokerData !== null && _brokerData !== undefined) {\r\n _brokerData.push({\r\n key: \"Other\",\r\n type: \"Broker\",\r\n value: \"Other (log in notes)\"\r\n })\r\n }\r\n\r\n const _trukData = trucking?.truckingDatas\r\n ?.filter(td => td?.type === \"TruckType\")\r\n ?.sort((a, b) => a?.value! < b?.value! ? -1 : 1);\r\n\r\n if (_trukData !== null && _trukData !== undefined) {\r\n _trukData.push({\r\n key: \"Other\",\r\n type: \"Broker\",\r\n value: \"Other (log in notes)\"\r\n })\r\n }\r\n\r\n const _plantData = trucking?.truckingDatas\r\n ?.filter(td => td?.type === \"Plant\")\r\n ?.sort((a, b) => a?.value! < b?.value! ? -1 : 1);\r\n\r\n const _materialData = materials\r\n ?.filter(m => m?.operationType === \"paving\")\r\n ?.sort((a, b) => a?.value! < b?.value! ? -1 : 1);\r\n\r\n const onPlantChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n\r\n setBookData(draft => {\r\n draft.plant = _eValue;\r\n })\r\n }\r\n\r\n const onTonnageChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n\r\n let tonnage: number | \"\" = parseInt(_eValue);\r\n tonnage = isNaN(tonnage) ? \"\" : tonnage;\r\n if (tonnage < 0) { return }\r\n\r\n if (tonnage.toString().length > 5) {\r\n return;\r\n }\r\n\r\n setBookData(draft => {\r\n draft.tonnage = tonnage as number;\r\n })\r\n }\r\n\r\n const onKeyPressTonnage = (e: React.KeyboardEvent) => {\r\n if (/^[0-9]+$/.test(e.key) === false) {\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n const onBrokerChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n\r\n setBookData(draft => {\r\n draft.broker = _eValue;\r\n })\r\n }\r\n\r\n const onTypeOfTruckingChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n\r\n setBookData(draft => {\r\n draft.typeOfTrucks = _eValue;\r\n })\r\n }\r\n\r\n const onNumberOfTrucksChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n\r\n let nrOfTrucks: number | \"\" = parseInt(_eValue);\r\n nrOfTrucks = isNaN(nrOfTrucks) ? \"\" : nrOfTrucks;\r\n if (nrOfTrucks < 0) { return }\r\n\r\n if (nrOfTrucks.toString().length > 5) {\r\n return;\r\n }\r\n\r\n setBookData(draft => {\r\n draft.nrOfTrucks = nrOfTrucks as number;\r\n })\r\n }\r\n\r\n const onKeyPressNumberOfTrucks = (e: React.KeyboardEvent) => {\r\n if (/^[0-9]+$/.test(e.key) === false) {\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n const onCheckboxChange = (index: number, isChecked: boolean, item: PavingCalendar) => {\r\n const _checkedItem = { ...checkedItem };\r\n\r\n if (isChecked === false) {\r\n delete _checkedItem[index as number]\r\n setCheckedItem(_checkedItem);\r\n return;\r\n }\r\n\r\n setCheckedItem({ ...checkedItem, [index]: { checked: isChecked, item } })\r\n }\r\n\r\n const onMaterialChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n\r\n setBookData(draft => {\r\n draft.material = _eValue;\r\n })\r\n }\r\n const onShiftChange = (e: React.ChangeEvent) => {\r\n const value = e.target.value;\r\n\r\n setBookData(draft => {\r\n draft.shift = value;\r\n })\r\n }\r\n\r\n const onLocationChange = (e: React.ChangeEvent) => {\r\n const value = e.target.value;\r\n setBookData(draft => {\r\n draft.location = parseInt(value);\r\n })\r\n }\r\n\r\n const onDatesSelected = (dates: string[]) => {\r\n setBookData(draft => {\r\n draft.dates = dates;\r\n })\r\n }\r\n\r\n const onDelete = async () => {\r\n let valuesFromCheckedItem: PavingCalendarInput[] = [];\r\n Object.values(checkedItem)?.forEach(i => {\r\n let item = i.item;\r\n\r\n valuesFromCheckedItem.push({\r\n broker: item.broker,\r\n constant: item.constant,\r\n date: item.date,\r\n jobName: item.jobName,\r\n jobNumber: item.jobNumber,\r\n locationIndex: item.locationIndex,\r\n manager: item.manager,\r\n material: item.material,\r\n nrOfTrucks: item.nrOfTrucks,\r\n operationType: item.operationType,\r\n plant: item.plant,\r\n shift: item.shift,\r\n location: item.location,\r\n tonnage: item.tonnage,\r\n typeOfTrucks: item.typeOfTrucks,\r\n uID: item.uID\r\n });\r\n });\r\n dispatch(deleteResourcesFromJIAndTrucking({\r\n locationIndex: 1,\r\n unix: (moment.utc(props.date, \"YYYY-MM-DD\").unix()) * 1000,\r\n truckingResources: valuesFromCheckedItem,\r\n }));\r\n\r\n await to(deleteBookedDateItems({ variables: { data: valuesFromCheckedItem } }));\r\n setCheckedItem(() => ({}));\r\n }\r\n\r\n const onCloseWithoutSaving = () => {\r\n modal?.openModal?.({\r\n element: { props?.refetchItemInCalendar?.(); props.onClose?.(); setBookData(() => getInitialBookState(props.date)) }}\r\n onCancel={() => { }}\r\n yesNoButtons={true}\r\n />\r\n });\r\n }\r\n\r\n const onCloseModal = () => {\r\n if (bookData.broker !== \"\" ||\r\n bookData.plant !== \"\" ||\r\n bookData.tonnage != null ||\r\n bookData.nrOfTrucks != null ||\r\n bookData.material !== \"\" ||\r\n bookData.shift !== \"\" || \r\n bookData.location !== 0) {\r\n onCloseWithoutSaving()\r\n } else {\r\n setBookData(() => getInitialBookState(props.date))\r\n props?.refetchItemInCalendar?.();\r\n props.onClose?.();\r\n }\r\n }\r\n\r\n const onDeleteClick = () => {\r\n const _date = (moment.utc(props.date, \"YYYY-MM-DD\").unix()) * 1000;\r\n const havePaving = datesJobInfo?.jobInfo.filter(ji => ji?.resourceID === \"PAV\" && ji.date === _date);\r\n\r\n if (checkForLockedDays().includes(props.date)) {\r\n modal?.openModal({\r\n element: { }}\r\n onCancel={() => { }}\r\n />\r\n })\r\n }\r\n else {\r\n if (havePaving != null && havePaving.length > 0) {\r\n modal?.openModal({\r\n element: onDelete()}\r\n onCancel={() => { }}\r\n />\r\n })\r\n } else {\r\n modal?.openModal({\r\n element: { }}\r\n onCancel={() => { }}\r\n />\r\n })\r\n }\r\n }\r\n }\r\n\r\n const _datesWithJobInfoPav: string[] | undefined = datesJobInfo?.jobInfo\r\n ?.filter(ji => ji?.resourceID === \"PAV\" && ji.locationIndex === 1)\r\n ?.map(ji => ji?.date as string);\r\n\r\n const _datesWithJobInfoPavNoDuplicated = _datesWithJobInfoPav\r\n ?.filter((v, i) => _datesWithJobInfoPav.indexOf(v) === i)\r\n ?.map(date => moment(date).format(\"YYYY.MM.DD\"));\r\n\r\n const _datesWithJobInfoTrk: string[] | undefined = datesJobInfo?.jobInfo\r\n ?.filter(ji => ji?.resourceID === \"TRK\" && ji?.locationIndex === 1)\r\n ?.map(ji => ji?.date as string);\r\n\r\n const _datesWithJobInfoTrkNoDuplicated = _datesWithJobInfoTrk\r\n ?.filter((v, i) => _datesWithJobInfoTrk.indexOf(v) === i)\r\n ?.map(date => moment(date).format(\"YYYY.MM.DD\"));\r\n\r\n const _datesWithTruckingResourcesOpTypePaving: string[] | undefined = datesTrucking?.masterCrewSchedules\r\n ?.filter(tr => tr?.operationType === \"paving\" && tr.locationIndex === 1)\r\n ?.map(tr => tr?.date as string);\r\n\r\n const _datesWithTrkOpPavingNoDuplicated = _datesWithTruckingResourcesOpTypePaving\r\n ?.filter((v, i) => _datesWithTruckingResourcesOpTypePaving.indexOf(v) === i)\r\n ?.map(date => moment(date).format(\"YYYY.MM.DD\"));\r\n\r\n const _datesWhereWeNeedToAddPavingManagement = bookData.dates?.filter(item => _datesWithJobInfoPavNoDuplicated != null && !_datesWithJobInfoPavNoDuplicated.includes(item));\r\n\r\n // dates where we need to add trucking resource on JobInfos table\r\n const _datesWhereWeNeedToAddTruckingManagementJI = bookData.dates?.filter(item => _datesWithJobInfoTrkNoDuplicated != null && !_datesWithJobInfoTrkNoDuplicated.includes(item));\r\n\r\n const _datesWhereWeNeedToAddTruckingResource = bookData.dates?.filter(item => _datesWithTrkOpPavingNoDuplicated != null && !_datesWithTrkOpPavingNoDuplicated.includes(item));\r\n\r\n const _datesWhereNeedToUpdateQtyJi = _datesWhereWeNeedToAddTruckingResource?.filter(item => _datesWhereWeNeedToAddTruckingManagementJI != null && !_datesWhereWeNeedToAddTruckingManagementJI.includes(item));\r\n\r\n const isSaveButtonDisabled = () => {\r\n if (days == null || Object.keys(days).length === 0 || props.date == null) return;\r\n\r\n const currentDay = moment.utc().format(props.dateFormat);\r\n if (props.date < currentDay) {\r\n return true\r\n }\r\n\r\n if (addButtonStatus === true) {\r\n return true\r\n }\r\n\r\n if (_datesWhereWeNeedToAddTruckingResource == null || _datesWhereWeNeedToAddTruckingResource.length === 0) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function changeFormatDate(originalDate: string | undefined) {\r\n const each = originalDate?.split('/');\r\n if (each?.length === 3) {\r\n const newDate = `${each[2]}.${each[0]}.${each[1]}`;\r\n return newDate;\r\n }else{\r\n return ''\r\n }\r\n }\r\n\r\n const onSubmit = async (dataToCheck: any) => {\r\n const savePaving = async () => {\r\n\r\n const pavingData: AddMasterCrewSchedulesPavingInput[] = [];\r\n const truckingData: AddMasterCrewSchedulesInput[] = [];\r\n setIsLoading(true);\r\n \r\n if (_datesWhereWeNeedToAddTruckingResource != null && _datesWhereWeNeedToAddTruckingResource.length > 0) {\r\n _datesWhereWeNeedToAddTruckingResource?.forEach(date => {\r\n truckingData.push({\r\n date: (moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000,\r\n locationIndex: bookData.location as unknown as number,\r\n broker: bookData.broker as string,\r\n jobNumber: jobNumberInformations?.jobNumber as number,\r\n tableauGSI_Tableau: \"tableau\",\r\n searchGSI_JobNumber: jobNumberInformations?.jobNumber as number,\r\n loadSite: bookData.plant as string,\r\n material: bookData.material as string,\r\n notes: \" \",\r\n operationType: bookData.operationType as string,\r\n qty: bookData.nrOfTrucks as number,\r\n shift: bookData.shift as string,\r\n type: bookData.typeOfTrucks as string,\r\n addedFromPaving: true,\r\n updated: false,\r\n timeStamp: moment().format()\r\n })\r\n });\r\n }\r\n \r\n if (_datesWhereWeNeedToAddPavingManagement != null && _datesWhereWeNeedToAddPavingManagement.length > 0) {\r\n _datesWhereWeNeedToAddPavingManagement\r\n ?.forEach(date => {\r\n pavingData.push({\r\n date: (moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000,\r\n jobNumber: jobNumberInformations?.jobNumber as number,\r\n locationIndex: bookData.location as unknown as number,\r\n material: bookData.material as string,\r\n notes: \" \",\r\n qty: 1,\r\n searchGSI_JobNumber: jobNumberInformations?.jobNumber as number,\r\n shift: bookData.shift as string,\r\n mixSubmital: \" \",\r\n tonnage: bookData.tonnage as number,\r\n oilTruck: \"false\",\r\n plant: bookData.plant as string,\r\n resourceDescription: \"Foreman - Operator\",\r\n resourceID: \"OFM\",\r\n resourceType: \"Labor\",\r\n bookTruckVendor: \" \",\r\n rtsSupport: \"GRC\",\r\n tph: null,\r\n extraWork: \" \",\r\n grinder4ft: null,\r\n grinder6ft: null,\r\n grinder7ft: null,\r\n grinder12ft: null,\r\n uts: \" \",\r\n mixDesignApproval: \"N\",\r\n addedFromPaving: true,\r\n updated: false,\r\n timeStamp: moment().format()\r\n });\r\n })\r\n }\r\n \r\n const jobInfo: JobInfoFullInput[] = [];\r\n if (_datesWhereWeNeedToAddPavingManagement != null && _datesWhereWeNeedToAddPavingManagement.length > 0) {\r\n _datesWhereWeNeedToAddPavingManagement?.forEach(date => {\r\n jobInfo.push(\r\n {\r\n jobNumber_Date: parseInt(`${jobNumberInformations?.jobNumber}${(moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000}`) / 1000,\r\n searchGSI_JobNumber: jobNumberInformations?.jobNumber,\r\n tableauGSI_Tableau: \"tableau\",\r\n resourceName: \"Paving Crew\",\r\n resourceQTY: 1,\r\n resourceID: \"PAV\",\r\n resourceType: \"Labor\",\r\n date: (moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000,\r\n additionalResourcesComments: \" \",\r\n areaManager: jobNumberInformations?.areaManager == null ? \" \" : jobNumberInformations?.areaManager,\r\n description: \" \",\r\n foreman: \" \",\r\n jobName: jobNumberInformations?.jobName == null ? \" \" : jobNumberInformations?.jobName,\r\n locationIndex: bookData.location as unknown as number,\r\n pmpe: jobNumberInformations?.projectManager == null ? \" \" : jobNumberInformations?.projectManager as string,\r\n superIntendent: jobNumberInformations?.superIntendentName == null ? \" \" : jobNumberInformations?.superIntendentName as string,\r\n pavingForeman: \" \",\r\n pavingSuperIntendent: \" \"\r\n },\r\n {\r\n jobNumber_Date: parseInt(`${jobNumberInformations?.jobNumber}${(moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000}`) / 1000,\r\n searchGSI_JobNumber: jobNumberInformations?.jobNumber,\r\n tableauGSI_Tableau: \"tableau\",\r\n resourceName: \"AC Paving Crew\",\r\n resourceQTY: 1,\r\n resourceID: \"ACP\",\r\n resourceType: \"Labor\",\r\n date: (moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000,\r\n additionalResourcesComments: \" \",\r\n areaManager: jobNumberInformations?.areaManager == null ? \" \" : jobNumberInformations?.areaManager,\r\n description: \" \",\r\n foreman: \" \",\r\n jobName: jobNumberInformations?.jobName == null ? \" \" : jobNumberInformations?.jobName,\r\n locationIndex: bookData.location as unknown as number,\r\n pmpe: jobNumberInformations?.projectManager == null ? \" \" : jobNumberInformations?.projectManager as string,\r\n superIntendent: jobNumberInformations?.superIntendentName == null ? \" \" : jobNumberInformations?.superIntendentName as string,\r\n pavingForeman: \" \",\r\n pavingSuperIntendent: \" \"\r\n },\r\n );\r\n })\r\n if (_datesWhereWeNeedToAddTruckingManagementJI != null && _datesWhereWeNeedToAddTruckingManagementJI.length > 0) {\r\n _datesWhereWeNeedToAddTruckingManagementJI?.forEach(date => {\r\n jobInfo.push(\r\n {\r\n jobNumber_Date: parseInt(`${jobNumberInformations?.jobNumber}${(moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000}`) / 1000,\r\n searchGSI_JobNumber: jobNumberInformations?.jobNumber,\r\n tableauGSI_Tableau: \"tableau\",\r\n resourceName: \"Trucking\",\r\n resourceQTY: bookData.nrOfTrucks as number,\r\n resourceID: \"TRK\",\r\n resourceType: \"Equipment\",\r\n date: (moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000,\r\n additionalResourcesComments: \" \",\r\n areaManager: jobNumberInformations?.areaManager == null ? \" \" : jobNumberInformations?.areaManager,\r\n description: \" \",\r\n foreman: \" \",\r\n jobName: jobNumberInformations?.jobName == null ? \" \" : jobNumberInformations?.jobName,\r\n locationIndex: bookData.location as unknown as number,\r\n pmpe: jobNumberInformations?.projectManager == null ? \" \" : jobNumberInformations?.projectManager as string,\r\n superIntendent: jobNumberInformations?.superIntendentName == null ? \" \" : jobNumberInformations?.superIntendentName as string,\r\n pavingForeman: \" \",\r\n pavingSuperIntendent: \" \"\r\n }\r\n );\r\n });\r\n }\r\n }\r\n \r\n const jobInfosToUpdate: JobInfoFullInput[] = [];\r\n if (_datesWhereNeedToUpdateQtyJi != null && _datesWhereNeedToUpdateQtyJi.length > 0) {\r\n const _datesWhereNeedToUpdateQtyJiTransformed = _datesWhereNeedToUpdateQtyJi.map(date => (moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000)\r\n const _filteredJI = datesJobInfo?.jobInfo.filter(ji => ji?.resourceID === \"TRK\" && ji.locationIndex === 1);\r\n const itemsToUpdateJI = _filteredJI?.filter(ji => _datesWhereNeedToUpdateQtyJiTransformed.includes(ji?.date));\r\n \r\n itemsToUpdateJI?.forEach(item => {\r\n delete item?.[\"__typename\"];\r\n const _qty = item?.resourceQTY as number + bookData.nrOfTrucks! as number;\r\n jobInfosToUpdate.push({ ...item, resourceQTY: _qty })\r\n });\r\n }\r\n \r\n // if trucking management has already an entry with the current job number, i do not need to save the information to schedules & paving management\r\n const data: BookYourDateOnPavingInput = {\r\n paving: {\r\n addPavingResources: pavingData.length === 0 ? null : pavingData\r\n },\r\n save: {\r\n jobInfos: {\r\n putJobInfo: jobInfo.length === 0 ? null : jobInfo\r\n }\r\n },\r\n trucking: {\r\n addTruckingResources: truckingData.length === 0 ? null : truckingData\r\n },\r\n jobInfosToUpdate: jobInfosToUpdate.length === 0 ? null : jobInfosToUpdate\r\n }\r\n \r\n dispatch(addPavingFromPavingCalendarResources({\r\n jobInfoResources: jobInfo,\r\n locationIndex: 1,\r\n pavingResources: pavingData,\r\n truckingResources: truckingData,\r\n jobInfoToUpdate: jobInfosToUpdate,\r\n }))\r\n \r\n const [, response] = await to(bookYourDateOnPaving({ variables: { data } }));\r\n \r\n if (response) {\r\n setBookData(() => getInitialBookState(props.date))\r\n props?.refetchItemInCalendar?.();\r\n refetchJobInfo();\r\n refetchTrucking();\r\n }\r\n \r\n setIsLoading(false);\r\n\r\n }\r\n\r\n let confirmed = false;\r\n let allElementsPassed = true;\r\n dataToCheck?.itemsInPavingCalendar.forEach(async function(objeto: { shift: string; jobNumber: number; date: string; locationIndex: number; }, indice: number) {\r\n if (objeto.shift === bookData?.shift && objeto.jobNumber === jobNumberInformations?.jobNumber && objeto.locationIndex === bookData?.location) {\r\n const conflictsDays = []\r\n const miObjeto = days[objeto?.locationIndex].daysByUnix\r\n for (const propiedad in miObjeto) {\r\n if(bookData?.dates?.includes(changeFormatDate(miObjeto[propiedad]?.date)))\r\n conflictsDays.push(miObjeto[propiedad].date)\r\n }\r\n if(conflictsDays.length > 0){\r\n const modalResponse = await new Promise((resolve) => {\r\n modal?.openModal?.({\r\n element: {\r\n await onDeletePaving(objeto);\r\n }}\r\n onCancel={() => resolve(false)}\r\n yesNoButtons={true}\r\n />\r\n })\r\n })\r\n confirmed = modalResponse;\r\n allElementsPassed = false;\r\n }\r\n }\r\n });\r\n if(allElementsPassed || dataToCheck?.itemsInPavingCalendar.length === 0){\r\n confirmed = true\r\n }\r\n if(confirmed){\r\n savePaving()\r\n }\r\n }\r\n\r\n const onDeletePaving = async (item: any) => {\r\n const arrayItem = [item]\r\n let valuesFromCheckedItem: PavingCalendarInput[] = [];\r\n Object.values(arrayItem)?.forEach(item => {\r\n\r\n valuesFromCheckedItem.push({\r\n broker: item.broker,\r\n constant: item.constant,\r\n date: item.date,\r\n jobName: item.jobName,\r\n jobNumber: item.jobNumber,\r\n locationIndex: item.locationIndex,\r\n manager: item.manager,\r\n material: item.material,\r\n nrOfTrucks: item.nrOfTrucks,\r\n operationType: item.operationType,\r\n plant: item.plant,\r\n shift: item.shift,\r\n location: item.location,\r\n tonnage: item.tonnage,\r\n typeOfTrucks: item.typeOfTrucks,\r\n uID: item.uID\r\n });\r\n });\r\n\r\n dispatch(deleteResourcesFromJIAndTrucking({\r\n locationIndex: 1,\r\n unix: (moment.utc(props.date, \"YYYY-MM-DD\").unix()) * 1000,\r\n truckingResources: valuesFromCheckedItem,\r\n }));\r\n\r\n await to(deleteBookedDateItems({ variables: { data: valuesFromCheckedItem } }));\r\n setCheckedItem(() => ({}));\r\n }\r\n\r\n const checkForLockedDays = () => {\r\n let _lockedDays: Maybe[] = [];\r\n lockedDaysData?.superIntendentPavingCalendar.forEach((item: Maybe) => {\r\n if (item?.jobNumbersBlocked?.includes(jobNumber as number) || item?.status === true) _lockedDays.push(item.date)\r\n })\r\n let lockedDays = _lockedDays?.map(day => moment.utc(day!).format(\"YYYY.MM.DD\"));\r\n return lockedDays;\r\n }\r\n\r\n let _lockedDays = checkForLockedDays()?.map(day => moment(day!).format(\"DD MM YYYY\"));\r\n let _lockedItems3WeekRange = props.lockedItems3WeekRange?.map(day => moment(day!).format(\"DD MM YYYY\"))\r\n\r\n useEffect(() => {\r\n refetchLockedDays();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [onPlantChange, onTonnageChange, onKeyPressTonnage, onBrokerChange, onTypeOfTruckingChange, onNumberOfTrucksChange, onKeyPressNumberOfTrucks, onCheckboxChange,\r\n onMaterialChange, onShiftChange, onDatesSelected])\r\n\r\n return (\r\n <>\r\n {(loading || loadingJobInfo || loadingTrucking || loadingDelete) && }\r\n {(error || errorJobInfo || errorTrucking) != null && }\r\n
\r\n
\r\n
Date: {moment(props.date, props.dateFormat).format(\"MM/DD/YYYY\")} {checkForLockedDays().includes(props.date) ? : null}
\r\n onCloseModal()} />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n onNumberOfTrucksChange(e)}\r\n onKeyPress={onKeyPressNumberOfTrucks}\r\n placeholder=\"Number of Trucks\"\r\n />\r\n
\r\n
\r\n onTonnageChange(e)}\r\n onKeyPress={onKeyPressTonnage}\r\n placeholder=\"Tonnage\"\r\n />\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {\r\n !checkForLockedDays().includes(props.date) ?\r\n onDatesSelected(dates)}\r\n lockedDays={checkForLockedDays()}\r\n dates={getDates()}\r\n redDates={getDatesWithMoreThanThreeJN()}\r\n lockedItems3WeekRange={_lockedItems3WeekRange}\r\n />\r\n : null\r\n }\r\n
\r\n
\r\n Selected Days: {bookData.dates?.map(s => moment(s as string, \"YYYY.MM.DD\").format('MM/DD/YYYY') + (bookData.dates != null && bookData?.dates.length as number < 2 ? \" \" : \"; \"))}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Job Number\r\n
\r\n
\r\n Job Name\r\n
\r\n
\r\n Manager\r\n
\r\n
\r\n Tonnage\r\n
\r\n
\r\n Type Of Truck\r\n
\r\n
\r\n Nr Of Truck\r\n
\r\n
\r\n Plant\r\n
\r\n
\r\n Broker\r\n
\r\n
\r\n Material\r\n
\r\n
\r\n Shift\r\n
\r\n
\r\n Location\r\n
\r\n
\r\n
\r\n {\r\n data?.itemsInPavingCalendar.map((tr, index) => (\r\n
\r\n { onCheckboxChange(index, e.target.checked, tr!) }}\r\n checked={checkedItem?.[index]?.checked || false}\r\n disabled={tr?.jobNumber === jobNumberInformations?.jobNumber ? false : true}\r\n />\r\n
\r\n {tr?.jobNumber}\r\n
\r\n
\r\n {tr?.jobName}\r\n
\r\n
\r\n {tr?.manager}\r\n
\r\n
\r\n {tr?.tonnage}\r\n
\r\n
\r\n {tr?.typeOfTrucks}\r\n
\r\n
\r\n {tr?.nrOfTrucks}\r\n
\r\n
\r\n {tr?.plant}\r\n
\r\n
\r\n {tr?.broker}\r\n
\r\n
\r\n {tr?.material}\r\n
\r\n
\r\n {tr?.shift}\r\n
\r\n
\r\n {tr?.locationIndex}\r\n
\r\n
\r\n ))\r\n }\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const DATES_PAVING_CALENDAR_QUERY_JN = gql`\r\n query datesJNInPavingCalendar($data: PavingCalendarQueryInput!) {\r\n datesJNInPavingCalendar(data: $data) {\r\n uID\r\n date\r\n jobNumber\r\n jobName\r\n manager\r\n tonnage\r\n plant\r\n nrOfTrucks\r\n typeOfTrucks\r\n broker\r\n material\r\n operationType\r\n constant\r\n shift\r\n locationIndex\r\n }\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const DATES_PAVING_CALENDAR_QUERY = gql`\r\n query datesInPavingCalendar($data: PavingCalendarQInput!) {\r\n datesInPavingCalendar(data: $data) {\r\n uID\r\n date\r\n jobNumber\r\n jobName\r\n manager\r\n tonnage\r\n plant\r\n nrOfTrucks\r\n typeOfTrucks\r\n broker\r\n material\r\n operationType\r\n constant\r\n shift\r\n locationIndex\r\n }\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const PAVING_FOREMANS_QUERY = gql`\r\n query pavingForemans {\r\n pavingForemans {\r\n uID\r\n username\r\n\t }\r\n }\r\n`;","import React, { memo, FC, useContext, useEffect, useCallback } from \"react\";\r\nimport moment from \"moment\";\r\nimport \"flatpickr/dist/themes/material_green.css\";\r\nimport { BookDatePavingComponent } from \"./BookDate/BookDatePaving\";\r\nimport { DateInput } from \"./DateInput\";\r\nimport { ModalContext } from \"../../Modal/ModalContext/ModalContext\";\r\nimport \"./PavingCalendar.css\"\r\nimport { useLazyQuery, useQuery } from \"@apollo/react-hooks\";\r\nimport { Maybe, Query, SuperIntendentPavingCalendar } from \"../../../graphql/schema-types\";\r\nimport { DATES_PAVING_CALENDAR_QUERY_JN } from \"../../../graphql/queries/DATES_PAVING_CALENDAR_JN\";\r\nimport { useImmer } from \"use-immer\";\r\nimport { toMap } from \"../../../utils/toMap\";\r\nimport { FullScreenLoadingIndicator } from \"../../Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\nimport { FullScreenErrorIndicator } from \"../../Modal/ErrorIndicator/FullScreenErrorIndicator\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../redux/store\";\r\nimport { DATES_PAVING_CALENDAR_QUERY } from \"../../../graphql/queries/DATES_PAVING_CALENDAR\";\r\nimport { toMultiMap } from \"../../../utils/toMultiMap\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\nimport { PAVING_FOREMANS_QUERY } from \"../../../graphql/queries/PAVING_FOREMANS_QUERY\";\r\nimport { SUPER_INTENDENT_PAVING_CALENDAR_QUERY } from \"../../../graphql/queries/SUPER_INTENDENT_PAVING_CALENDAR_QUERY\";\r\n\r\ninterface ILongRangeCalendarProps {\r\n onClose?(): void;\r\n}\r\n\r\ninterface State {\r\n startDate: string;\r\n endDate: string;\r\n currentMonth: string;\r\n lastMonth: string;\r\n}\r\n\r\nconst LongRangeCalendar: FC = props => {\r\n const dateFormat = \"YYYY.MM.DD\";\r\n\r\n const [state, setState] = useImmer({\r\n currentMonth: moment().startOf('month').format(\"M\"),\r\n lastMonth: moment().startOf('month').add(3, 'months').format(\"M\"),\r\n startDate: moment().startOf('month').format(dateFormat),\r\n endDate: moment().startOf('month').add(3, 'months').format(dateFormat)\r\n });\r\n\r\n const [getDatesInPavingCalendar, { loading, error, data: datesInPavingCalendarData, refetch }] = useLazyQuery>(DATES_PAVING_CALENDAR_QUERY_JN, {\r\n fetchPolicy: \"no-cache\",\r\n });\r\n\r\n const { data: dataForeman, loading: loadingForeman, error: errorForeman } = useQuery>(PAVING_FOREMANS_QUERY, {\r\n fetchPolicy: \"no-cache\"\r\n });\r\n\r\n const { data: datesInPavingCalendar, loading: loadingDatesInPavingCalendar } = useQuery>(DATES_PAVING_CALENDAR_QUERY, {\r\n variables: {\r\n data: {\r\n startDate: (moment.utc(state.startDate, \"YYYY-MM-DD\").unix()) * 1000,\r\n endDate: (moment.utc(state.endDate, \"YYYY-MM-DD\").unix()) * 1000\r\n }\r\n },\r\n skip: state.startDate == null || state.startDate === \"\" || state.endDate == null || state.endDate === \"\",\r\n fetchPolicy: \"no-cache\"\r\n });\r\n\r\n const jobNumber = useSelector((state: RootState) => state.app.start.jobNumber);\r\n const firstDayPM = useSelector((state: RootState) => state.app.schedule.locations?.[1]?.days?.[0]);\r\n const lastDayPM = useSelector((state: RootState) => state.app.schedule.locations?.[1]?.days?.[state?.app?.schedule?.locations?.[1]?.days?.length - 1]);\r\n\r\n useEffect(() => {\r\n document.body.style.overflow = 'hidden'\r\n return () => {\r\n document.body.removeAttribute('style')\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n window.onpopstate = (e: any) => {\r\n props?.onClose?.()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n const _startDate = (moment.utc(state.startDate, \"YYYY-MM-DD\").unix()) * 1000;\r\n const _endDate = (moment.utc(state.endDate, \"YYYY-MM-DD\").unix()) * 1000;\r\n\r\n getDatesInPavingCalendar({\r\n variables: { data: { jobNumber, startDate: _startDate, endDate: _endDate } },\r\n });\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [state, getDatesInPavingCalendar])\r\n\r\n const modal = useContext(ModalContext);\r\n\r\n const onNext = () => {\r\n const _startDate = moment(state.startDate, dateFormat).add(3, \"months\").format(dateFormat);\r\n const _endDate = moment(state.endDate, dateFormat).add(3, \"months\").format(dateFormat);\r\n const _startMonth = moment(state.currentMonth).add(3, \"months\").format(\"M\");\r\n const _endMonth = moment(state.lastMonth).add(3, \"months\").format(\"M\");\r\n\r\n setState(draft => {\r\n draft.startDate = moment.utc(_startDate).format(dateFormat);\r\n draft.endDate = moment.utc(_endDate).format(dateFormat);\r\n draft.currentMonth = moment.utc(_startMonth).format(\"M\");\r\n draft.lastMonth = moment.utc(_endMonth).format(\"M\");\r\n })\r\n }\r\n\r\n const onPrev = () => {\r\n const _startDate = moment(state.startDate, dateFormat).add(-3, \"months\").format(dateFormat);\r\n const _endDate = moment(state.endDate, dateFormat).add(-3, \"months\").format(dateFormat);\r\n const _startMonth = moment(state.currentMonth).add(-3, \"months\").format(\"M\");\r\n const _endMonth = moment(state.lastMonth).add(-3, \"months\").format(\"M\");\r\n\r\n setState(draft => {\r\n draft.startDate = moment.utc(_startDate).format(dateFormat);\r\n draft.endDate = moment.utc(_endDate).format(dateFormat);\r\n draft.currentMonth = moment.utc(_startMonth).format(\"M\");\r\n draft.lastMonth = moment.utc(_endMonth).format(\"M\");\r\n })\r\n }\r\n\r\n const getDates = useCallback(() => {\r\n return toMap(datesInPavingCalendarData?.datesJNInPavingCalendar ?? [], pavCalendar => pavCalendar?.date!, () => true);\r\n }, [datesInPavingCalendarData])\r\n\r\n const getDatesWithMoreThanThreeJN = useCallback(() => {\r\n const limitItemsNumber = dataForeman != null && dataForeman?.pavingForemans?.length > 0 ? dataForeman?.pavingForemans.length : 3;\r\n const groupedDates = toMultiMap(datesInPavingCalendar?.datesInPavingCalendar ?? [], date => date?.date!);\r\n const dates = Object.keys(groupedDates)\r\n ?.map(date => groupedDates[date].map(d => d?.jobNumber))\r\n ?.map((gd, i) => gd?.length >= limitItemsNumber\r\n ? Object.keys(groupedDates)[i]\r\n : null\r\n )\r\n\r\n return dates.filter(d => d != null)\r\n }, [datesInPavingCalendar, dataForeman])\r\n\r\n const { data: lockedDaysData, refetch: refetchLockedDays } = useQuery>(SUPER_INTENDENT_PAVING_CALENDAR_QUERY, {\r\n variables: {\r\n where: {\r\n startDate: (moment.utc(moment().startOf('month').format(\"YYYY-MM-DD\")).unix()) * 1000,\r\n endDate: (moment.utc(moment().startOf('month').add(3, 'months').format(\"YYYY-MM-DD\")).unix()) * 1000,\r\n }\r\n },\r\n fetchPolicy: \"no-cache\"\r\n });\r\n\r\n const getDatesFrom3WeeksLookWithPaving = useCallback(() => {\r\n const _firstDatePM = moment(firstDayPM).format(dateFormat);\r\n const _lastDatePM = moment(lastDayPM).format(dateFormat);\r\n\r\n return datesInPavingCalendarData?.datesJNInPavingCalendar\r\n ?.filter(item => item!.date! >= _firstDatePM && item!.date! <= _lastDatePM)\r\n ?.map(item => item?.date as string);\r\n\r\n }, [datesInPavingCalendarData, firstDayPM, lastDayPM]);\r\n\r\n\r\n\r\n useEffect(() => {\r\n if (lockedDaysData == null) return;\r\n let lockedDays: string[] = checkForLockedDays();\r\n _lockedDays.forEach(ld => {\r\n if (!lockedDays.includes(ld)) lockedDays?.push(ld)\r\n })\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [lockedDaysData])\r\n\r\n const disableArrows = useCallback((pressedArrow: string) => {\r\n const currentMonth = parseInt(moment().utc().format('M'));\r\n const firstMonthFromState = parseInt(moment.utc(state.currentMonth).format(\"M\"));\r\n const lastMonthFromState = parseInt(moment.utc(state.lastMonth).format(\"M\"));\r\n\r\n if (pressedArrow === \"right\") {\r\n if (lastMonthFromState === currentMonth) {\r\n return \"true\";\r\n }\r\n }\r\n\r\n if (pressedArrow === \"left\") {\r\n if (currentMonth === firstMonthFromState) {\r\n return \"true\";\r\n }\r\n }\r\n\r\n return \"false\";\r\n }, [state])\r\n\r\n const setShowBookDateComponent = useCallback((date: string) => {\r\n modal?.openModal({\r\n element: \r\n })\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [datesInPavingCalendarData, datesInPavingCalendar, dataForeman, getDatesFrom3WeeksLookWithPaving])\r\n\r\n const checkForLockedDays = () => {\r\n let _lockedDays: Maybe[] = [];\r\n lockedDaysData?.superIntendentPavingCalendar.forEach((item: Maybe) => {\r\n if (item?.jobNumbersBlocked?.includes(jobNumber as number) || item?.status === true) _lockedDays.push(item.date)\r\n })\r\n let lockedDays = _lockedDays?.map(day => moment.utc(day!).format(\"YYYY.MM.DD\"));\r\n return lockedDays;\r\n }\r\n\r\n let _lockedDays = checkForLockedDays()?.map(day => moment.utc(day!).format(\"YYYY.MM.DD\"));\r\n\r\n useEffect(() => {\r\n refetchLockedDays();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [state, setState, setShowBookDateComponent, getDates, getDatesWithMoreThanThreeJN, getDatesFrom3WeeksLookWithPaving, onPrev, onNext])\r\n\r\n return (\r\n <>\r\n {(loading || loadingForeman || loadingDatesInPavingCalendar) && }\r\n {(error != null || errorForeman != null) && }\r\n
{ refetchLockedDays() }}>\r\n
{ refetchLockedDays() }}>\r\n
Calendar
\r\n props.onClose?.()} />\r\n
\r\n
\r\n \r\n \r\n
\r\n
{ refetchLockedDays() }}>\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default memo(LongRangeCalendar);","import React, { FC, useState } from \"react\";\r\n\r\n\r\ninterface IButtonProps {\r\n onClick(): void,\r\n className?: string,\r\n disabled?: boolean,\r\n type?: \"button\" | \"submit\" | \"reset\" | undefined,\r\n tooltip?: string,\r\n onMouseOver?(e: React.MouseEvent): void,\r\n onMouseLeave?(e: React.MouseEvent): void,\r\n children: any,\r\n}\r\n\r\nexport const Button: FC = (props) => {\r\n const [showTooltip, setShowTooltip] = useState(false);\r\n\r\n const handleMouseOver = (e: React.MouseEvent) => {\r\n if (props?.tooltip) {\r\n setShowTooltip(true);\r\n }\r\n typeof props.onMouseOver == 'function' && props.onMouseOver(e);\r\n }\r\n\r\n const handleMouseLeave = (e: React.MouseEvent) => {\r\n setShowTooltip(false);\r\n typeof props.onMouseLeave == 'function' && props.onMouseLeave(e)\r\n }\r\n\r\n return (\r\n \r\n {props.children}\r\n {showTooltip\r\n ?
{props.tooltip}
\r\n : null\r\n }\r\n \r\n )\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const DELETE_EQUIPMENTS = gql`\r\n mutation deleteEquipments($where: [DeleteEquipmentsInput!]!){\r\n deleteEquipments(where: $where)\r\n }\r\n`;","import React, { FC } from \"react\";\r\nimport { Button } from \"../../Form/Button\";\r\nimport \"./LockedDaysWhileWorking.css\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\nimport moment from \"moment\";\r\n\r\ninterface LockedDaysWhileWorking {\r\n onClose?(): void;\r\n days: number[];\r\n}\r\n\r\nexport const LockedDaysWhileWorking: FC = props => {\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
Locked days while working
\r\n props.onClose?.()} />\r\n
\r\n
\r\n
\r\n {`These days were locked while you were working: ${props.days.map(d => moment(d).utc().format(\"MM/DD\"))}.\r\n Paving Crews can't be saved for them.`}\r\n
\r\n
\r\n
\r\n props.onClose?.()}\r\n title=\"OK\"\r\n type=\"button\"\r\n className=\"Button\"\r\n />\r\n
\r\n
\r\n
\r\n );\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const ADD_RESOURCES_ON_MATERIAL_DATAS = gql`\r\n mutation addResourcesOnMaterialDatas($where: AddResourceOnMaterialDatasInput!) {\r\n addResourcesOnMaterialDatas(where: $where)\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const ADD_RESOURCES_ON_TRUCKING_DATAS = gql`\r\n mutation addResourcesOnTruckingDatas($where: AddResourceOnTruckingDatasInput!) {\r\n addResourcesOnTruckingDatas(where: $where)\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const MATERIAL_DATAS_QUERY = gql`\r\n query materialDatas {\r\n materialDatas {\r\n uID\r\n value\r\n key\r\n operationType\r\n type\r\n\t }\r\n }\r\n`;","import React, { FC, useEffect, useState } from \"react\"\r\nimport { useImmer } from \"use-immer\"\r\nimport { CheckBox } from \"../../Form/CheckBox\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\nimport { Resource } from \"../AddResources\";\r\nimport \"./AddResource.css\";\r\ninterface IAddResource {\r\n types: string[];\r\n onClose?(): void;\r\n onAddingResource(resource: Resource): void;\r\n}\r\n\r\nexport const AddResource: FC = (props) => {\r\n const [state, setState] = useImmer({\r\n uID: \"\",\r\n key: \"\",\r\n value: \"\",\r\n operationType: null,\r\n type: \"\"\r\n })\r\n const [isButtonDisabled, setIsButtonDisabled] = useState(true);\r\n\r\n useEffect(() => {\r\n if (state.type == null ||\r\n state.type.trim() === \"\" ||\r\n state.value == null ||\r\n state.value.trim() === \"\" ||\r\n state.key == null ||\r\n state.key.trim() === \"\"\r\n ) {\r\n setIsButtonDisabled(true);\r\n }\r\n else {\r\n setIsButtonDisabled(false);\r\n }\r\n\r\n }, [state, setState]);\r\n\r\n const onTypeChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n setState(draft => {\r\n draft.type = _eValue;\r\n })\r\n }\r\n\r\n const onKeyChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n setState(draft => {\r\n draft.key = _eValue;\r\n })\r\n }\r\n\r\n const onValueChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n setState(draft => {\r\n draft.value = _eValue;\r\n })\r\n }\r\n\r\n const onOperationType = (checked: boolean) => {\r\n setState(draft => {\r\n checked === true\r\n ? draft.operationType = \"paving\"\r\n : draft.operationType = null\r\n })\r\n }\r\n\r\n const onSave = () => {\r\n props.onAddingResource(state);\r\n props.onClose?.();\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
Add Resource
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Type
\r\n
ID
\r\n
Name
\r\n
Operation Type Paving (for material only)
\r\n
\r\n
\r\n \r\n \r\n {\r\n props.types.length > 0 && props.types.map((s, index) => (\r\n \r\n ))\r\n }\r\n \r\n onKeyChange(e)}\r\n value={state.key as string}\r\n type=\"text\"\r\n placeholder=\"ID\"\r\n />\r\n onValueChange(e)}\r\n value={state.value as string}\r\n type=\"text\"\r\n placeholder=\"Name\"\r\n />\r\n { onOperationType(e.target.checked) }}\r\n checked={state.operationType == null ? false : true}\r\n disabled={state.type === \"Material\" ? false : true}\r\n />\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const EDIT_RESOURCES_ON_MATERIAL_DATAS = gql`\r\n mutation editResourceOnMaterialDatas($where: UpdateResourceOnMaterialDatasInput!) {\r\n editResourceOnMaterialDatas(where: $where)\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const EDIT_RESOURCES_ON_TRUCKING_DATAS = gql`\r\n mutation editResourceOnTruckingDatas($where: UpdateResourceOnTruckingDatasInput!) {\r\n editResourceOnTruckingDatas(where: $where)\r\n }\r\n`;","import { useMutation } from \"@apollo/react-hooks\";\r\nimport to from \"await-to-js\";\r\nimport React, { FC, useEffect, useState } from \"react\";\r\nimport { useImmer } from \"use-immer\";\r\nimport { EDIT_RESOURCES_ON_MATERIAL_DATAS } from \"../../../graphql/mutations/EDIT_RESOURCES_ON_MATERIAL_DATAS\";\r\nimport { EDIT_RESOURCES_ON_TRUCKING_DATAS } from \"../../../graphql/mutations/EDIT_RESOURCES_ON_TRUCKING_DATAS\";\r\nimport { CheckBox } from \"../../Form/CheckBox\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\nimport { Resource } from \"../AddResources\";\r\nimport \"./EditResource.css\";\r\n\r\ninterface IEditResource {\r\n onClose?(): void;\r\n resource: Resource;\r\n onEditResource(res: Resource, oldResource: Resource): void;\r\n usedResources: string[];\r\n}\r\n\r\nexport const EditResource: FC = props => {\r\n const [state, setState] = useImmer({\r\n uID: \"\",\r\n key: \"\",\r\n operationType: null,\r\n type: \"\",\r\n value: \"\"\r\n });\r\n const [isButtonDisabled, setIsButtonDisabled] = useState(true);\r\n\r\n const [editResourceOnMaterialDatas] = useMutation(EDIT_RESOURCES_ON_MATERIAL_DATAS);\r\n const [editResourceOnTruckingDatas] = useMutation(EDIT_RESOURCES_ON_TRUCKING_DATAS);\r\n\r\n useEffect(() => {\r\n if (props.resource == null) return;\r\n\r\n setState(draft => {\r\n draft.uID = props.resource.uID as string;\r\n draft.key = props.resource.key as string;\r\n draft.type = props.resource.type as string;\r\n draft.value = props.resource.value as string;\r\n draft.operationType = props.resource.type === \"Material\" ? props.resource.operationType : null\r\n })\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (state.type == null ||\r\n state.type.trim() === \"\" ||\r\n state.value == null ||\r\n state.value.trim() === \"\" ||\r\n state.key == null ||\r\n state.key.trim() === \"\"\r\n ) {\r\n setIsButtonDisabled(true);\r\n }\r\n else {\r\n setIsButtonDisabled(false);\r\n }\r\n\r\n }, [state, setState]);\r\n\r\n const onKeyChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n setState(draft => {\r\n draft.key = _eValue;\r\n })\r\n }\r\n\r\n const onValueChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n setState(draft => {\r\n draft.value = _eValue;\r\n })\r\n }\r\n\r\n const onOperationType = (checked: boolean) => {\r\n setState(draft => {\r\n checked === true\r\n ? draft.operationType = \"paving\"\r\n : draft.operationType = null\r\n })\r\n }\r\n\r\n const onSaveEdit = async () => {\r\n if (state.type === \"Material\") {\r\n await to(editResourceOnMaterialDatas({\r\n variables: {\r\n where: {\r\n key: state.key,\r\n operationType: state.operationType,\r\n value: state.value,\r\n type: state.type\r\n }\r\n }\r\n }));\r\n }\r\n\r\n if (state.type !== \"Material\") {\r\n await to(editResourceOnTruckingDatas({\r\n variables: {\r\n where: {\r\n key: state.key,\r\n value: state.value,\r\n type: state.type,\r\n uID: state.uID\r\n }\r\n }\r\n }));\r\n }\r\n // send to parent component the edited object\r\n props.onEditResource(state, props.resource);\r\n props.onClose?.();\r\n }\r\n\r\n const onDisableButton = () => {\r\n if (!props.usedResources.includes(state.value)) {\r\n if (isButtonDisabled === false) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
Edit Resource
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Type
\r\n
ID
\r\n
Name
\r\n
Operation Type Paving (for material only)
\r\n
\r\n
\r\n
{state.type}
\r\n onKeyChange(e)}\r\n value={state.key as string}\r\n type=\"text\"\r\n placeholder=\"ID\"\r\n readOnly={props.usedResources.includes(state.value) ? true : false}\r\n />\r\n onValueChange(e)}\r\n value={state.value as string}\r\n type=\"text\"\r\n placeholder=\"Name\"\r\n readOnly={props.usedResources.includes(state.value) ? true : false}\r\n />\r\n { onOperationType(e.target.checked) }}\r\n checked={state.operationType == null ? false : true}\r\n disabled={state.type === \"Material\" ? false : true}\r\n />\r\n
\r\n
\r\n
\r\n \r\n {\r\n props.usedResources.includes(state.value)\r\n ?
The resource is used in a paving or trucking item, please change the {state.type} resource and then edit the value
\r\n : null\r\n }\r\n
\r\n
\r\n )\r\n\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const DELETE_RESOURCES_ON_MATERIAL_DATAS = gql`\r\n mutation deleteResourcesOnMaterialDatas($where: [String]!) {\r\n deleteResourcesOnMaterialDatas(where: $where)\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const DELETE_RESOURCES_ON_TRUCKING_DATAS = gql`\r\n mutation deleteResourcesOnTruckingDatas($where: [String]!) {\r\n deleteResourcesOnTruckingDatas(where: $where)\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const MASTER_CREW_SCHEDULE_AND_PAVING_QUERY = gql`\r\n query masterCrewScheduleAndPaving($where: StartEndDateInput!) {\r\n masterCrewScheduleAndPaving(where: $where) {\r\n\t\t\ttrucking {\r\n\t\t\t\tbroker\r\n\t\t\t\tmaterial\r\n \t\tloadSite\r\n\t\t\t\ttype\r\n\t\t\t},\r\n\t\t\tpaving {\r\n\t\t\t\tmaterial\r\n\t\t\t\tplant\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;","import { useMutation, useQuery } from \"@apollo/react-hooks\";\r\nimport to from \"await-to-js\";\r\nimport React, { FC, useContext, useEffect } from \"react\";\r\nimport { useImmer } from \"use-immer\";\r\nimport { ADD_RESOURCES_ON_MATERIAL_DATAS } from \"../../graphql/mutations/ADD_RESOURCES_ON_MATERIAL_DATAS\";\r\nimport { ADD_RESOURCES_ON_TRUCKING_DATAS } from \"../../graphql/mutations/ADD_RESOURCES_ON_TRUCKING_DATAS\";\r\nimport { MATERIAL_DATAS_QUERY } from \"../../graphql/queries/MATERIAL_DATAS_QUERY\";\r\nimport { TRUCKING_DATAS_QUERY } from \"../../graphql/queries/TRUCKING_DATAS_QUERY\";\r\nimport { MaterialData, Maybe, Query, TruckingData } from \"../../graphql/schema-types\";\r\nimport { CheckBox } from \"../Form/CheckBox\";\r\nimport { CloseButton } from \"../Form/CloseButton\";\r\nimport { FullScreenLoadingIndicator } from \"../Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\nimport { ModalContext } from \"../Modal/ModalContext/ModalContext\";\r\nimport { AddResource } from \"./AddResource/AddResource\";\r\nimport \"./AddResources.css\"\r\nimport { EditResource } from \"./EditResource/EditResource\";\r\nimport { toMap } from \"../../utils/toMap\";\r\nimport { DELETE_RESOURCES_ON_MATERIAL_DATAS } from \"../../graphql/mutations/DELETE_RESOURCES_ON_MATERIAL_DATAS\";\r\nimport { DELETE_RESOURCES_ON_TRUCKING_DATAS } from \"../../graphql/mutations/DELETE_RESOURCES_ON_TRUCKING_DATAS\";\r\nimport { GeneralWarningModal } from \"../Warnings & errors/GeneralWarningModal/GeneralWarningModal\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../redux/store\";\r\nimport { updateTruckingAndMaterialDatas } from \"../../redux/appSlice\";\r\nimport { MASTER_CREW_SCHEDULE_AND_PAVING_QUERY } from \"../../graphql/queries/MASTER_CREW_SCHEDULE_AND_PAVING_QUERY\";\r\nimport moment from \"moment\";\r\ninterface IAddResources {\r\n onClose?(): void;\r\n}\r\nexport type Resource = {\r\n checked?: boolean\r\n uID: string\r\n type: string\r\n key: string\r\n value: string\r\n operationType: string | null | undefined\r\n}\r\n\r\ntype State = {\r\n resources: { [key: string]: Resource },\r\n currentMenuOption: string | number | null | undefined,\r\n usedResources: {\r\n usedMaterials: string[],\r\n usedPlants: string[],\r\n usedTruckTypes: string[],\r\n usedBrokers: string[],\r\n allUsedResources: string[]\r\n }\r\n};\r\n\r\nexport const AddResources: FC = (props) => {\r\n\r\n const firstDay = (moment.utc(moment().format(\"YYYY-MM-DD\")).unix()) * 1000;\r\n const lastDay = (moment.utc(moment(firstDay).add(6, 'months').format(\"YYYY-MM-DD\")).unix()) * 1000;\r\n const isGeneralPavingSuper = useSelector((state: RootState) => state.app.pavingModuleUser.isInGeneralPavingSupers);\r\n\r\n const [state, setState] = useImmer({\r\n resources: {},\r\n currentMenuOption: null,\r\n usedResources: {\r\n usedBrokers: [],\r\n usedMaterials: [],\r\n usedPlants: [],\r\n usedTruckTypes: [],\r\n allUsedResources: []\r\n }\r\n })\r\n\r\n const { data: data, loading: loading, refetch: refetch } = useQuery>(TRUCKING_DATAS_QUERY);\r\n const { data: material, loading: loadingMaterial, refetch: refetchMaterial } = useQuery>(MATERIAL_DATAS_QUERY);\r\n\r\n const { data: objects } = useQuery>(MASTER_CREW_SCHEDULE_AND_PAVING_QUERY,\r\n {\r\n variables: {\r\n where: {\r\n startDate: firstDay,\r\n endDate: lastDay\r\n }\r\n },\r\n skip: isGeneralPavingSuper === false || isGeneralPavingSuper == null,\r\n fetchPolicy: \"no-cache\"\r\n });\r\n\r\n const [addResourcesOnMaterialDatas, { loading: loadingAddResourcesOnMaterial }] = useMutation(ADD_RESOURCES_ON_MATERIAL_DATAS);\r\n const [addResourcesOnTruckingDatas, { loading: loadingAddResourcesOnTrucking }] = useMutation(ADD_RESOURCES_ON_TRUCKING_DATAS);\r\n\r\n const [deleteResourcesOnMaterialDatas, { loading: loadingDeleteResourcesOnMaterial }] = useMutation(DELETE_RESOURCES_ON_MATERIAL_DATAS);\r\n const [deleteResourcesOnTruckingDatas, { loading: loadingDeleteResourcesOnTrucking }] = useMutation(DELETE_RESOURCES_ON_TRUCKING_DATAS);\r\n\r\n const modal = useContext(ModalContext);\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n if (objects?.masterCrewScheduleAndPaving == null) return;\r\n\r\n let usedMaterials: string[] = [];\r\n let usedPlants: string[] = [];\r\n let usedTruckTypes: string[] = [];\r\n let usedBrokers: string[] = [];\r\n\r\n objects?.masterCrewScheduleAndPaving.paving?.forEach(r => {\r\n if (!usedMaterials.includes(r?.material as string)) {\r\n usedMaterials.push(r?.material as string);\r\n }\r\n\r\n if (!usedPlants.includes(r?.plant as string)) {\r\n usedPlants.push(r?.plant as string);\r\n }\r\n });\r\n\r\n objects?.masterCrewScheduleAndPaving.trucking?.forEach(r => {\r\n if (!usedMaterials.includes(r?.material as string)) {\r\n usedMaterials.push(r?.material as string);\r\n }\r\n\r\n if (!usedPlants.includes(r?.loadSite as string)) {\r\n usedPlants.push(r?.loadSite as string);\r\n }\r\n\r\n if (!usedTruckTypes.includes(r?.type as string)) {\r\n usedTruckTypes.push(r?.type as string);\r\n }\r\n\r\n if (!usedBrokers.includes(r?.broker as string)) {\r\n usedBrokers.push(r?.broker as string);\r\n }\r\n })\r\n\r\n setState(draft => {\r\n draft.usedResources.usedBrokers = usedBrokers;\r\n draft.usedResources.usedMaterials = usedMaterials;\r\n draft.usedResources.usedPlants = usedPlants;\r\n draft.usedResources.usedTruckTypes = usedTruckTypes;\r\n draft.usedResources.allUsedResources = [...usedBrokers, ...usedMaterials, ...usedPlants, ...usedTruckTypes].flat()\r\n })\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [objects]);\r\n\r\n useEffect(() => {\r\n // because MaterialData & TruckingData are different types, we combine them into a general type called State, and save them to component state\r\n if (material?.materialDatas == null || data?.truckingDatas == null) return;\r\n\r\n const _res: Resource[] = [];\r\n material.materialDatas?.forEach(m => {\r\n _res.push({\r\n uID: m?.uID as string,\r\n key: m?.key as string,\r\n type: m?.type as string,\r\n value: m?.value as string,\r\n operationType: m?.operationType as string\r\n });\r\n });\r\n\r\n // the only key that make those 2 to be different is the \"operationType\" and we put value null to those who came from truckingDatas\r\n data?.truckingDatas?.forEach(t => {\r\n _res.push({\r\n uID: t?.uID as string,\r\n key: t?.key as string,\r\n type: t?.type as string,\r\n value: t?.value as string,\r\n operationType: null\r\n })\r\n });\r\n\r\n // sort the array before convert into an key-value pair\r\n _res.sort((a, b) => a.key.toLowerCase() > b.key.toLocaleLowerCase() ? 1 : -1);\r\n const r = toMap(_res, r => r.key ?? \"\");\r\n\r\n setState(draft => {\r\n draft.resources = r;\r\n })\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [data, material, refetch, refetchMaterial]);\r\n\r\n const _menuOptions = Object.values(state.resources)\r\n .map(r => r?.type!)\r\n .filter((v, i, a) => a.indexOf(v) === i)\r\n .sort((a, b) => a > b ? 1 : -1);\r\n\r\n const onCheckboxChange = (res: Resource, isChecked: boolean) => {\r\n setState(draft => {\r\n draft.resources[res.key].checked = isChecked;\r\n });\r\n }\r\n\r\n const onAddRes = async (resource: Resource) => {\r\n if (resource == null) { return }\r\n\r\n if (resource.type === \"Material\") {\r\n const [error, response] = await to(addResourcesOnMaterialDatas({\r\n variables: {\r\n where: {\r\n key: resource.key,\r\n operationType: resource.operationType,\r\n value: resource.value,\r\n type: resource.type\r\n }\r\n }\r\n }));\r\n if (error == null && response != null) {\r\n refetchMaterial();\r\n\r\n let _materialDatas = Object.values(state.resources).filter(r => r.type === \"Material\");\r\n _materialDatas.push({\r\n uID: \"\",\r\n key: resource.key,\r\n operationType: resource.operationType,\r\n value: resource.value,\r\n type: resource.type\r\n });\r\n\r\n const materialDatas: Maybe[] | undefined = _materialDatas.map(r => ({\r\n key: r.key,\r\n operationType: r.operationType,\r\n type: r.type,\r\n uID: r.uID,\r\n value: r.value\r\n }))\r\n\r\n dispatch(updateTruckingAndMaterialDatas({ materialDatas }))\r\n }\r\n }\r\n else {\r\n const [error, response] = await to(addResourcesOnTruckingDatas({\r\n variables: {\r\n where: {\r\n key: resource.key,\r\n value: resource.value,\r\n type: resource.type\r\n }\r\n }\r\n }));\r\n if (error == null && response != null) {\r\n refetch();\r\n\r\n let _truckingDatas = Object.values(state.resources).filter(r => r.type !== \"Material\");\r\n _truckingDatas.push({\r\n uID: \"\",\r\n operationType: null,\r\n key: resource.key,\r\n value: resource.value,\r\n type: resource.type\r\n });\r\n\r\n const truckingDatas: Maybe[] | undefined = _truckingDatas.map(t => ({\r\n key: t.key,\r\n type: t.type,\r\n uID: t.uID,\r\n value: t.value\r\n }));\r\n\r\n dispatch(updateTruckingAndMaterialDatas({ truckingDatas }))\r\n }\r\n }\r\n\r\n setState((draft) => {\r\n draft.resources[resource.key] = resource;\r\n });\r\n }\r\n\r\n const onEditRes = (res: Resource, oldResource: Resource) => {\r\n if (Object.values(state.resources) == null) { return }\r\n setState(draft => {\r\n draft.resources[res.key] = res;\r\n\r\n if((draft.resources?.[oldResource.value] !== draft.resources?.[res.value]) && (res.uID === oldResource.uID)){\r\n delete draft.resources?.[oldResource.key];\r\n } else if ((draft.resources?.[oldResource.key] !== draft.resources?.[res.key]) && (res.uID === oldResource.uID)){\r\n delete draft.resources?.[oldResource.key];\r\n }\r\n });\r\n\r\n // prepare the arrays for changing the modifications into the redux state\r\n if (res.type === \"Material\") {\r\n const materialDatas: Maybe[] | undefined = [];\r\n const _materialDatas = Object.values(state.resources).filter(r => r.type === \"Material\");\r\n _materialDatas.push({\r\n uID: \"\",\r\n key: res.key,\r\n operationType: res.operationType,\r\n value: res.value,\r\n type: res.type\r\n });\r\n _materialDatas.map(r => (\r\n materialDatas.push({\r\n key: r.key,\r\n operationType: r.operationType,\r\n type: r.type,\r\n uID: r.uID,\r\n value: r.value\r\n })\r\n ));\r\n dispatch(updateTruckingAndMaterialDatas({ materialDatas }))\r\n }\r\n if (res.type !== \"Material\") {\r\n const truckingDatas: Maybe[] | undefined = [];\r\n const _truckingDatas = Object.values(state.resources).filter(r => r.type !== \"Material\");\r\n _truckingDatas.push({\r\n uID: \"\",\r\n key: res.key,\r\n operationType: res.operationType,\r\n value: res.value,\r\n type: res.type\r\n });\r\n _truckingDatas.map(r => (\r\n truckingDatas.push({\r\n key: r.key,\r\n type: r.type,\r\n uID: r.uID,\r\n value: r.value\r\n })\r\n ));\r\n dispatch(updateTruckingAndMaterialDatas({ truckingDatas }))\r\n }\r\n }\r\n\r\n const onAddResource = () => {\r\n modal?.openModal?.({\r\n element: \r\n });\r\n }\r\n\r\n const onEditValue = (r: any, usedResources: string[]) => {\r\n modal?.openModal?.({\r\n element: \r\n });\r\n }\r\n\r\n const onDeleteResourceConfirmation = () => {\r\n modal?.openModal?.({\r\n element: onDeleteResource()}\r\n onCancel={() => { }}\r\n />\r\n });\r\n }\r\n\r\n const onDeleteResource = async () => {\r\n const checkedForDelete = Object.values(state.resources).filter(r => r.checked === true);\r\n\r\n // check if one of the checked for delete resources is selected for future items\r\n\r\n const _materialDataResources = checkedForDelete\r\n ?.filter(r => r.type === \"Material\");\r\n\r\n const _truckingDataResources = checkedForDelete\r\n ?.filter(r => r.type !== \"Material\")\r\n\r\n if (_materialDataResources != null && _materialDataResources.length > 0) {\r\n const [error, response] = await to(deleteResourcesOnMaterialDatas({\r\n variables: { where: _materialDataResources?.map(r => r.uID) }\r\n }));\r\n // delete from state the resources you checked for delete\r\n if (error == null && response != null) {\r\n setState(draft => {\r\n _materialDataResources.forEach(m => {\r\n delete draft.resources[m.key]\r\n })\r\n })\r\n // prepare objects for updating the redux\r\n let _materialDataAfterDelete = state.resources;\r\n \r\n const _matDatas = Object.values(_materialDataAfterDelete).filter(r => r.type === \"Material\");\r\n const materialDatas: Maybe[] | undefined = [];\r\n\r\n _matDatas.map(r => (\r\n r != null\r\n ? materialDatas.push({\r\n key: r.key,\r\n operationType: r.operationType,\r\n type: r.type,\r\n uID: r.uID,\r\n value: r.value\r\n })\r\n : null\r\n ));\r\n \r\n dispatch(updateTruckingAndMaterialDatas({ materialDatas, _materialDataResources})); \r\n refetchMaterial()\r\n }\r\n }\r\n\r\n if (_truckingDataResources != null && _truckingDataResources.length > 0) {\r\n const [error, response] = await to(deleteResourcesOnTruckingDatas({\r\n variables: { where: _truckingDataResources?.map(r => r.uID) }\r\n }));\r\n\r\n // delete from state the resources you checked for delete\r\n if (error == null && response != null) {\r\n setState(draft => {\r\n _truckingDataResources.forEach(t => {\r\n delete draft.resources[t.key]\r\n })\r\n })\r\n\r\n // prepare objects for updating the redux\r\n let _truckingDataAfterDelete = state.resources;\r\n\r\n const _trkDatas = Object.values(_truckingDataAfterDelete).filter(r => r.type === \"Material\");\r\n const truckingDatas: Maybe[] | undefined = [];\r\n\r\n _trkDatas.map(r => (\r\n truckingDatas.push({\r\n key: r.key,\r\n type: r.type,\r\n uID: r.uID,\r\n value: r.value\r\n })\r\n ));\r\n\r\n dispatch(updateTruckingAndMaterialDatas({ truckingDatas, _truckingDataAfterDelete}));\r\n refetch()\r\n }\r\n }\r\n }\r\n\r\n const disableCheckbox = (r: Resource) => {\r\n if (!state.usedResources.allUsedResources.includes(r.value)) {\r\n return false\r\n }\r\n return true;\r\n }\r\n\r\n return (\r\n <>\r\n {(loading || loadingMaterial || loadingAddResourcesOnMaterial || loadingAddResourcesOnTrucking || loadingDeleteResourcesOnMaterial || loadingDeleteResourcesOnTrucking) && }\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
Resources Management
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {\r\n _menuOptions?.map((mo: string, i: number) => (\r\n { setState((draft) => { draft.currentMenuOption = mo }) }}>\r\n {mo}\r\n
\r\n ))\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
ID
\r\n
Name
\r\n
Edit Resource
\r\n
\r\n
\r\n {\r\n Object.values(state.resources).filter(r => r?.type === state.currentMenuOption).map((r, index) =>\r\n r != null ?
\r\n { onCheckboxChange(r, e.target.checked) }}\r\n checked={r.checked || false}\r\n disabled={disableCheckbox(r)}\r\n />\r\n
{r?.key}
\r\n
{r?.value}
\r\n \r\n
\r\n : null\r\n )\r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n onDeleteResourceConfirmation()}\r\n >\r\n Delete Resource\r\n \r\n
\r\n
\r\n \r\n )\r\n}","/* eslint-disable no-loop-func */\r\nimport React, { FC, memo, useContext, useState, useRef } from 'react';\r\nimport DateSelect from './DateSelect'\r\nimport logo from '../Logo.png';\r\nimport { CrewManagement } from './Crew/CrewManagement/CrewManagement';\r\nimport { useApolloClient, useMutation } from '@apollo/react-hooks';\r\nimport { SAVE } from '../graphql/mutations/SAVE';\r\nimport { RootState } from '../redux/store';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { SaveInput, JobInfoFullInput, DeleteJobInfoInput, AddMasterCrewSchedulesInput, AddMasterCrewSchedulesPavingInput, DeleteEquipmentsInput, Maybe, SuperIntendentPavingCalendar } from '../graphql/schema-types';\r\nimport to from 'await-to-js';\r\nimport { SaveSuccesful } from './Warnings & errors/SaveSuccesful/SaveSuccesful';\r\nimport { SaveError } from './Warnings & errors/SaveError/SaveError';\r\nimport { NothingToSave } from './Warnings & errors/Nothing to save/NothingToSave';\r\nimport { ModalContext } from './Modal/ModalContext/ModalContext';\r\nimport { FullScreenLoadingIndicator } from './Modal/LoadingIndicator/FullScreenLoadingIndicator';\r\nimport { QtyError } from './Warnings & errors/QtyError/QtyError';\r\nimport { ADD_MASTER_CREW_SCHEDULES } from '../graphql/mutations/ADD_MASTER_CREW_SCHEDULES';\r\nimport { ADD_MASTER_CREW_SCHEDULES_PAVING } from '../graphql/mutations/ADD_MASTER_CREW_SCHEDULES_PAVING';\r\nimport PavingCalendar from './Paving/LongRangeCalendar/LongRangeCalendar';\r\nimport { Button } from './Button';\r\nimport { cleanModifiedDayByLocation } from '../redux/appSlice';\r\nimport { GeneralWarningModal } from './Warnings & errors/GeneralWarningModal/GeneralWarningModal';\r\nimport { DELETE_EQUIPMENTS } from \"../graphql/mutations/DELETE_EQUIPMENTS\";\r\nimport { SUPER_INTENDENT_PAVING_CALENDAR_QUERY } from '../graphql/queries/SUPER_INTENDENT_PAVING_CALENDAR_QUERY';\r\nimport { LockedDaysWhileWorking } from './Warnings & errors/LockedDaysWhileWorking/LockedDaysWhileWorking';\r\nimport { AddResources } from './AddResources/AddResources';\r\n\r\nconst Header: FC = () => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [save] = useMutation(SAVE);\r\n const [addMasterCrewSchedules] = useMutation(ADD_MASTER_CREW_SCHEDULES);\r\n const [addMasterCrewSchedulesPaving] = useMutation(ADD_MASTER_CREW_SCHEDULES_PAVING);\r\n const [deleteEquipment] = useMutation(DELETE_EQUIPMENTS);\r\n\r\n const jobNumber = useSelector((state: RootState) => state.app.start.jobNumber);\r\n const locations = useSelector((state: RootState) => state.app.schedule.locations);\r\n const modifiedLocationDays = useSelector((state: RootState) => state.app.modifiedDayByLocation);\r\n const modifiedLocation = useSelector((state: RootState) => state.app.modifiedLocation);\r\n const modifiedLocationInfo = useSelector((state: RootState) => state.app.modifiedLocationInfo);\r\n const jobName = useSelector((state: RootState) => state.app.jobNumberInformations?.jobName);\r\n const areaManager = useSelector((state: RootState) => state.app.jobNumberInformations?.areaManager) as string;\r\n const pmpe = useSelector((state: RootState) => state.app.jobNumberInformations?.projectManager) as string;\r\n const superIntendent = useSelector((state: RootState) => state.app.jobNumberInformations?.superIntendentName);\r\n const modifiedDaysByLocationInfo = useSelector((state: RootState) => state.app.modifiedDayByLocation);\r\n const loadedLockedDays = useSelector((state: RootState) => state.app.lockedDays);\r\n\r\n const modal = useContext(ModalContext);\r\n const dispatch = useDispatch();\r\n\r\n const refSaveButton = useRef(null);\r\n\r\n const client = useApolloClient();\r\n\r\n\r\n const showErrorModal = () => {\r\n modal?.openModal?.({\r\n component: SaveError,\r\n props: {\r\n onClose: () => { }\r\n },\r\n });\r\n }\r\n\r\n const showSuccessfulModal = () => {\r\n modal?.openModal?.({\r\n element: \r\n });\r\n }\r\n\r\n const showNothingToSaveModal = () => {\r\n modal?.openModal?.({\r\n element: \r\n });\r\n }\r\n\r\n const showMissingQTYModal = () => {\r\n modal?.openModal?.({\r\n element: \r\n })\r\n }\r\n\r\n const showLockedDaysWhileWorkingModal = (days: number[]) => {\r\n modal?.openModal?.({\r\n element: \r\n });\r\n }\r\n\r\n const onSubmit = async () => {\r\n setIsLoading(true);\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n let qty: boolean = false;\r\n const modifiedDayByLocation: DeleteJobInfoInput[] = [];\r\n const modifiedDayByLocationPaving: DeleteJobInfoInput[] = [];\r\n const modifiedDayByLocationTrucking: DeleteJobInfoInput[] = [];\r\n const modifiedDayForDeleteEquip: DeleteEquipmentsInput[] = [];\r\n const jobToSubmit: JobInfoFullInput[] = [];\r\n const truckingResources: AddMasterCrewSchedulesInput[] = [];\r\n const pavingResources: AddMasterCrewSchedulesPavingInput[] = [];\r\n let _lockedDays: Maybe[] = [];\r\n let count = 0;\r\n let daysLocked: number[] = [];\r\n\r\n let _modifiedLocationDays = Object.keys(modifiedLocationDays);\r\n for (let j = 0; j < _modifiedLocationDays.length; j++) {\r\n let md = _modifiedLocationDays[j];\r\n const key = parseInt(md);\r\n const days = modifiedLocationDays[key];\r\n let _days = Object.keys(days);\r\n\r\n for (let i = 0; i < _days.length; i++) {\r\n\r\n let d = _days[i];\r\n const [, responseLocked] = await to(\r\n client.query({\r\n query: SUPER_INTENDENT_PAVING_CALENDAR_QUERY, variables: {\r\n where: {\r\n startDate: Number(d),\r\n endDate: Number(d),\r\n }\r\n }\r\n })\r\n )\r\n\r\n responseLocked?.data.superIntendentPavingCalendar.forEach((item: Maybe) => {\r\n if (item?.jobNumbersBlocked?.includes(jobNumber as number) || item?.status === true) _lockedDays.push(item.date)\r\n })\r\n\r\n if (_lockedDays.includes(Number(d))) {\r\n count++;\r\n if (!loadedLockedDays.includes(Number(d))) {\r\n daysLocked.push(Number(d));\r\n }\r\n }\r\n\r\n modifiedDayByLocation.push({\r\n jobNumber: parseInt(`${jobNumber}`),\r\n locIndex: key,\r\n day: parseInt(d)\r\n })\r\n\r\n const operationType = days[parseInt(d)];\r\n Object.keys(operationType).forEach(ot => {\r\n\r\n if (operationType[parseInt(ot)] === \"clearDay\") {\r\n if ((key === 1 && locations[2]?.daysByUnix?.[parseInt(d)]?.paving?.pavingResources?.length === 0)\r\n || (key === 2 && locations[1]?.daysByUnix?.[parseInt(d)]?.paving?.pavingResources?.length === 0)) {\r\n modifiedDayForDeleteEquip.push({\r\n date: parseInt(d),\r\n jobNumber: parseInt(`${jobNumber}`)\r\n })\r\n }\r\n }\r\n\r\n if (operationType[parseInt(ot)] === \"paving\" || operationType[parseInt(ot)] === \"clearDay\") {\r\n modifiedDayByLocationPaving.push({\r\n jobNumber: parseInt(`${jobNumber}`),\r\n locIndex: key,\r\n day: parseInt(d)\r\n })\r\n\r\n const pvResources = locations[key].daysByUnix[parseInt(d)].paving.pavingResources;\r\n\r\n pvResources.forEach(pav => {\r\n pavingResources.push({\r\n date: parseInt(d),\r\n jobNumber: pav?.jobNumber,\r\n locationIndex: key,\r\n material: pav?.material,\r\n notes: pav?.notes,\r\n qty: pav?.qty,\r\n searchGSI_JobNumber: pav?.searchGSI_JobNumber,\r\n shift: pav?.shift,\r\n mixSubmital: pav?.mixSubmital,\r\n tonnage: pav?.tonnage,\r\n oilTruck: pav?.oilTruck,\r\n plant: pav?.plant,\r\n resourceDescription: pav?.resourceDescription,\r\n resourceID: pav?.resourceID,\r\n resourceType: pav?.resourceType,\r\n bookTruckVendor: pav?.bookTruckVendor,\r\n rtsSupport: pav?.rtsSupport,\r\n tph: pav?.tph,\r\n extraWork: pav?.extraWork,\r\n grinder12ft: pav?.grinder12ft,\r\n grinder4ft: pav?.grinder4ft,\r\n grinder6ft: pav?.grinder6ft,\r\n grinder7ft: pav?.grinder7ft,\r\n uts: pav?.uts,\r\n mixDesignApproval: pav?.mixDesignApproval,\r\n addedFromPaving: pav?.addedFromPaving,\r\n updated: pav?.updated,\r\n timeStamp: pav?.timeStamp,\r\n loadOutTime: pav?.loadOutTime,\r\n addedDate: pav?.addedDate\r\n })\r\n })\r\n }\r\n\r\n if (operationType[parseInt(ot)] === \"trucking\" || operationType[parseInt(ot)] === \"clearDay\") {\r\n modifiedDayByLocationTrucking.push({\r\n jobNumber: parseInt(`${jobNumber}`),\r\n locIndex: key,\r\n day: parseInt(d)\r\n })\r\n\r\n const trResources = locations[key].daysByUnix[parseInt(d)].trucking.truckingResources;\r\n\r\n trResources.forEach(tr => {\r\n truckingResources.push({\r\n broker: tr?.broker,\r\n date: parseInt(d),\r\n jobNumber: tr?.jobNumber,\r\n loadSite: tr?.loadSite,\r\n locationIndex: key,\r\n material: tr?.material,\r\n notes: tr?.notes,\r\n qty: tr?.qty,\r\n searchGSI_JobNumber: tr?.searchGSI_JobNumber,\r\n tableauGSI_Tableau: \"tableau\",\r\n shift: tr?.shift,\r\n type: tr?.type,\r\n operationType: tr?.operationType,\r\n addedFromPaving: tr?.addedFromPaving,\r\n updated: tr?.updated,\r\n timeStamp: tr?.timeStamp\r\n })\r\n })\r\n }\r\n })\r\n\r\n\r\n const jobInfoLabor = locations[key].daysByUnix[parseInt(d)].labor.jobInfos\r\n const jobInfoEquipment = locations[key].daysByUnix[parseInt(d)].equip.jobInfos\r\n Object.keys(jobInfoLabor).forEach(labor => {\r\n const laborKey = parseInt(labor);\r\n if (jobInfoLabor[laborKey]?.resourceQTY == null || jobInfoLabor[laborKey]?.resourceQTY === 0) {\r\n qty = true\r\n return;\r\n }\r\n jobToSubmit.push({\r\n jobNumber_Date: parseInt(`${jobNumber}${parseInt(d)}`) / 1000,\r\n searchGSI_JobNumber: jobNumber as number,\r\n tableauGSI_Tableau: \"tableau\",\r\n resourceName: jobInfoLabor[laborKey]?.resourceName,\r\n resourceQTY: jobInfoLabor[laborKey]?.resourceQTY,\r\n resourceID: jobInfoLabor[laborKey]?.resourceID,\r\n resourceType: jobInfoLabor[laborKey]?.resourceType,\r\n date: parseInt(d),\r\n additionalResourcesComments: locations[key].daysByUnix[parseInt(d)].additionalResourceComments.length === 0 ? \" \" : locations[key].daysByUnix[parseInt(d)].additionalResourceComments,\r\n areaManager: areaManager != null && areaManager?.length === 0 ? \" \" : areaManager,\r\n description: locations[key].daysByUnix[parseInt(d)].description.length === 0 ? \" \" : locations[key].daysByUnix[parseInt(d)].description,\r\n jobName: jobName != null && jobName?.length === 0 ? \" \" : jobName,\r\n locationIndex: key,\r\n pmpe: pmpe != null && pmpe.length === 0 ? \" \" : pmpe,\r\n superIntendent: superIntendent != null && superIntendent?.length === 0 ? \" \" : superIntendent as string,\r\n pavingForeman: jobInfoLabor[laborKey]?.pavingForeman ?? \" \",\r\n pavingSuperIntendent: jobInfoLabor[laborKey]?.pavingSuperIntendent ?? \" \",\r\n jobMap: jobInfoLabor[laborKey]?.jobMap ?? \" \"\r\n }\r\n )\r\n if (jobInfoLabor[laborKey]?.resourceID === \"PAV\") {\r\n jobToSubmit.push({\r\n jobNumber_Date: parseInt(`${jobNumber}${parseInt(d)}`) / 1000,\r\n searchGSI_JobNumber: jobNumber as number,\r\n tableauGSI_Tableau: \"tableau\",\r\n resourceName: \"AC Paving Crew\",\r\n resourceQTY: 1,\r\n resourceID: \"ACP\",\r\n resourceType: \"Labor\",\r\n date: parseInt(d),\r\n additionalResourcesComments: \" \",\r\n areaManager: areaManager != null && areaManager?.length === 0 ? \" \" : areaManager,\r\n description: \" \",\r\n foreman: \" \",\r\n jobName: jobName != null && jobName?.length === 0 ? \" \" : jobName,\r\n locationIndex: key,\r\n pmpe: pmpe != null && pmpe.length === 0 ? \" \" : pmpe,\r\n superIntendent: superIntendent != null && superIntendent?.length === 0 ? \" \" : superIntendent as string,\r\n pavingForeman: \" \",\r\n pavingSuperIntendent: \" \"\r\n })\r\n\r\n }\r\n }) // labor\r\n\r\n Object.keys(jobInfoEquipment).forEach(equip => {\r\n const equipKey = parseInt(equip);\r\n\r\n // If you added an equipment resource, with 0 as qty, then you cannot save\r\n // If the resourceID === TRK, then you can, because if the user selects inside the TRK, a resource with material \"No Material\", then you can add 0 as qty\r\n if ((jobInfoEquipment[equipKey]?.resourceQTY == null || jobInfoEquipment[equipKey]?.resourceQTY === 0) && jobInfoEquipment[equipKey]?.resourceName !== \"Trucking\") {\r\n qty = true\r\n return;\r\n }\r\n jobToSubmit.push({\r\n jobNumber_Date: parseInt(`${jobNumber}${parseInt(d)}`) / 1000,\r\n searchGSI_JobNumber: jobNumber as number,\r\n tableauGSI_Tableau: \"tableau\",\r\n resourceName: jobInfoEquipment[equipKey]?.resourceName,\r\n resourceQTY: jobInfoEquipment[equipKey]?.resourceQTY,\r\n resourceID: jobInfoEquipment[equipKey]?.resourceID,\r\n resourceType: jobInfoEquipment[equipKey]?.resourceType,\r\n date: parseInt(d),\r\n additionalResourcesComments: locations[key].daysByUnix[parseInt(d)].additionalResourceComments.length === 0 ? \" \" : locations[key].daysByUnix[parseInt(d)].additionalResourceComments,\r\n areaManager: areaManager != null && areaManager?.length === 0 ? \" \" : areaManager,\r\n description: locations[key].daysByUnix[parseInt(d)].description.length === 0 ? \" \" : locations[key].daysByUnix[parseInt(d)].description,\r\n jobName: jobName != null && jobName?.length === 0 ? \" \" : jobName,\r\n locationIndex: key,\r\n pmpe: pmpe != null && pmpe.length === 0 ? \" \" : pmpe,\r\n superIntendent: superIntendent != null && superIntendent?.length === 0 ? \" \" : superIntendent as string,\r\n pavingForeman: jobInfoEquipment[equipKey]?.pavingForeman ?? \" \",\r\n pavingSuperIntendent: jobInfoEquipment[equipKey]?.pavingSuperIntendent ?? \" \",\r\n jobMap: jobInfoEquipment[equipKey]?.jobMap ?? \" \"\r\n })\r\n }) // equipment\r\n }\r\n };\r\n if (qty) {\r\n showMissingQTYModal();\r\n setIsLoading(false);\r\n return\r\n }\r\n const [error, response] = await to(save({\r\n variables: {\r\n data: {\r\n locations: Object.keys(modifiedLocation).map(key => {\r\n const intKey = parseInt(key);\r\n return ({\r\n name: locations[intKey].name,\r\n jobNumber,\r\n activityDescription: locations[intKey].activityDescription,\r\n locationIndex: intKey\r\n })\r\n }),\r\n jobInfos: ({\r\n deleteJobInfo: Object.keys(modifiedDayByLocation).map(day => {\r\n const intKey = parseInt(day);\r\n return ({\r\n jobNumber: modifiedDayByLocation[intKey].jobNumber,\r\n day: modifiedDayByLocation[intKey].day,\r\n locIndex: modifiedDayByLocation[intKey].locIndex\r\n })\r\n }),\r\n putJobInfo: Object.keys(jobToSubmit).map(loc => {\r\n const intKey = parseInt(loc);\r\n return ({\r\n jobNumber_Date: jobToSubmit[intKey].jobNumber_Date,\r\n searchGSI_JobNumber: jobToSubmit[intKey].searchGSI_JobNumber,\r\n tableauGSI_Tableau: jobToSubmit[intKey].tableauGSI_Tableau,\r\n resourceName: jobToSubmit[intKey].resourceName,\r\n resourceQTY: jobToSubmit[intKey].resourceQTY,\r\n resourceID: jobToSubmit[intKey].resourceID,\r\n resourceType: jobToSubmit[intKey].resourceType,\r\n date: jobToSubmit[intKey].date,\r\n additionalResourcesComments: jobToSubmit[intKey].additionalResourcesComments,\r\n areaManager: jobToSubmit[intKey].areaManager,\r\n description: jobToSubmit[intKey].description,\r\n foreman: jobToSubmit[intKey].foreman,\r\n jobName: jobToSubmit[intKey].jobName,\r\n locationIndex: jobToSubmit[intKey].locationIndex,\r\n pmpe: jobToSubmit[intKey].pmpe,\r\n superIntendent: jobToSubmit[intKey].superIntendent,\r\n pavingForeman: jobToSubmit[intKey].pavingForeman,\r\n pavingSuperIntendent: jobToSubmit[intKey].pavingSuperIntendent,\r\n jobMap: jobToSubmit[intKey].jobMap\r\n })\r\n })\r\n })\r\n // ,job infos to add\r\n } as SaveInput\r\n }\r\n }))\r\n //} // end of save function\r\n\r\n let addMasterCrewSchedulesError, addMasterCrewSchedulesResponse;\r\n if (Object.keys(modifiedDayByLocationTrucking).length > 0) {\r\n [addMasterCrewSchedulesError, addMasterCrewSchedulesResponse] = await to(addMasterCrewSchedules({\r\n variables: {\r\n data: {\r\n deleteTruckingResources: Object.keys(modifiedDayByLocationTrucking).map(day => {\r\n const intKey = parseInt(day);\r\n return ({\r\n jobNumber: modifiedDayByLocationTrucking[intKey].jobNumber,\r\n date: modifiedDayByLocationTrucking[intKey].day,\r\n locIndex: modifiedDayByLocationTrucking[intKey].locIndex\r\n })\r\n }),\r\n addTruckingResources: truckingResources\r\n }\r\n }\r\n }));\r\n }\r\n\r\n let addMasterCrewSchedulesPavingError, addMasterCrewSchedulesPavingResponse;\r\n\r\n if (Object.keys(modifiedDayByLocationPaving).length > 0) {\r\n [addMasterCrewSchedulesPavingError, addMasterCrewSchedulesPavingResponse] = await to(addMasterCrewSchedulesPaving({\r\n variables: {\r\n data: {\r\n deletePavingResources: Object.keys(modifiedDayByLocationPaving).map(day => {\r\n const intKey = parseInt(day);\r\n return ({\r\n jobNumber: modifiedDayByLocationPaving[intKey].jobNumber,\r\n date: modifiedDayByLocationPaving[intKey].day,\r\n locIndex: modifiedDayByLocationPaving[intKey].locIndex\r\n })\r\n }),\r\n addPavingResources: pavingResources\r\n }\r\n }\r\n }));\r\n }\r\n\r\n let deleteEquipError, deleteEquipResponse;\r\n if (Object.keys(modifiedDayForDeleteEquip).length > 0) {\r\n [deleteEquipError, deleteEquipResponse] = await to(deleteEquipment({\r\n variables: {\r\n where: modifiedDayForDeleteEquip\r\n }\r\n }))\r\n }\r\n\r\n setIsLoading(false);\r\n\r\n if (daysLocked.length > 0) {\r\n showLockedDaysWhileWorkingModal(daysLocked);\r\n }\r\n\r\n if (modifiedLocation.length === 0 && modifiedDayByLocation.length === 0 && jobToSubmit.length === 0 && count === 0) {\r\n showNothingToSaveModal();\r\n return\r\n }\r\n\r\n if (response || addMasterCrewSchedulesResponse || addMasterCrewSchedulesPavingResponse || deleteEquipResponse) {\r\n showSuccessfulModal(); // set state for modal\r\n dispatch(cleanModifiedDayByLocation()); //empty modify day by location after save\r\n return\r\n }\r\n\r\n if (error || addMasterCrewSchedulesError || addMasterCrewSchedulesPavingError || deleteEquipError) {\r\n showErrorModal();\r\n return\r\n }\r\n\r\n if (refSaveButton.current) {\r\n refSaveButton.current.setAttribute(\"disabled\", \"disabled\");\r\n }\r\n }\r\n\r\n const showCrewModal = () => {\r\n modal?.openModal({\r\n element: \r\n });\r\n }\r\n\r\n const showPavingCalendar = () => {\r\n let hasPavingUnsaved: boolean = false;\r\n\r\n const modifiedDaysInfo = Object.values(modifiedDaysByLocationInfo).reduce((p, n) => ({ ...p, ...n }), {});\r\n\r\n for (const date in modifiedDaysInfo) {\r\n if (Object.values(modifiedDaysInfo[parseInt(date)] ?? {})?.flat()?.includes(\"paving\") ||\r\n Object.values(modifiedDaysInfo[parseInt(date)] ?? {})?.flat()?.includes(\"trucking\")\r\n || Object.values(modifiedDaysInfo[parseInt(date)] ?? {})?.flat()?.includes(\"clearDay\")\r\n || Object.values(modifiedDaysInfo[parseInt(date)] ?? {})?.flat()?.includes(\"true\")) {\r\n hasPavingUnsaved = true;\r\n break;\r\n }\r\n }\r\n\r\n if (hasPavingUnsaved === true) {\r\n modal?.openModal({\r\n element: \r\n })\r\n }\r\n else {\r\n modal?.openModal({\r\n element: \r\n })\r\n }\r\n }\r\n\r\n const isSaveButtonDisabled = () => {\r\n if (Object.keys(modifiedLocationDays).length === 0 && Object.keys(modifiedLocationInfo).length === 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n // it opens an url outside the app, for the tableau viewer\r\n const openUrl = () => {\r\n const url = \"http://skynet-elb-1907289844.us-west-2.elb.amazonaws.com/#/views/PavingResourceSchedule_16149850944500/CompletePavingSchedule?:showAppBanner=false&:display_count=n&:showVizHome=n&:origin=viz_share_link\";\r\n window.open(url);\r\n }\r\n\r\n const openResourcesModal = () => {\r\n modal?.openModal({\r\n element: \r\n })\r\n }\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Construction
Labor And Equipment Schedule\r\n
\r\n
\r\n \"logo\"\r\n
License #22
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default memo(Header);\r\n","import gql from \"graphql-tag\";\r\n\r\nexport const CREW_RESOURCES_QUERY = gql`\r\n query crewResources($crewCode: String!){\r\n crewResources(crewCode: $crewCode) {\r\n\t\tid\r\n\t\tcrewCode\r\n\t\tJobNumber\r\n\t\tQTYNeeded\r\n\t\tdateAdded\r\n\t\tresourceID\r\n\t\tresourceDescription\r\n\t\tresourceType\r\n\t}\r\n }\r\n`;","import React, { FC } from \"react\";\r\nimport { Button } from \"../../Form/Button\";\r\nimport \"./ApplyCrew.css\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\n\r\ninterface ApplyCrewInterface {\r\n onConfirm(): void;\r\n onClose?(): void;\r\n crewName: string;\r\n crewCode: string;\r\n assignDate?: string;\r\n}\r\n\r\nexport const ApplyCrew: FC = (props) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
Apply Crew
\r\n
\r\n props.onClose?.()} />\r\n
\r\n
\r\n
\r\n
\r\n Are you sure you want to apply
\r\n crew: {props.crewCode} / {props.crewName}
\r\n to: {props.assignDate} ?\r\n
\r\n
\r\n
\r\n { props.onConfirm(); props.onClose?.() }}\r\n title=\"Yes\"\r\n type=\"button\"\r\n className=\"Button\"\r\n />\r\n props.onClose?.()}\r\n title=\"No\"\r\n type=\"button\"\r\n className=\"Button\"\r\n />\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { FC } from \"react\";\r\n// import { Button } from \"../../Form/Button\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\nimport \"./DeallocateAllResourcesFromDay.css\";\r\n\r\ninterface DeallocateAllResourcesFromDayInterface {\r\n\tonConfirm(): void;\r\n\tonClose?(): void;\r\n}\r\n\r\nexport const DeallocateAllResourcesFromDay: FC = (props) => {\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\"graniterock\"\r\n\t\t\t\t\t\t
Empty Day
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t props.onClose?.()} />\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\tYou have to delete all the resources added to this day to allocate the crew resources
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n}","import React, { FC, useEffect, useState, useContext } from \"react\";\r\nimport \"./ResourceAssignment.css\";\r\nimport { EditCrew } from \"../EditCrew/EditCrew\";\r\nimport { useQuery } from \"@apollo/react-hooks\";\r\nimport { CREW_RESOURCES_QUERY } from \"../../../graphql/queries/CREWS_RESOURCES_QUERY\";\r\nimport { CustomCrewResourceComposition, CustomCrew, Maybe } from \"../../../graphql/schema-types\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { RootState } from \"../../../redux/store\";\r\nimport { addResourcesToDay, addDescriptionToDay } from \"../../../redux/appSlice\";\r\nimport { ApplyCrew } from \"../../Warnings & errors/ApplyCrew/ApplyCrew\";\r\nimport moment from \"moment\";\r\nimport { DeallocateAllResourcesFromDay } from \"../../Warnings & errors/DeallocateAllResourcesFromDay/DeallocateAllResourcesFromDay\";\r\nimport { ModalContext } from \"../../Modal/ModalContext/ModalContext\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\nimport { FullScreenLoadingIndicator } from \"../../Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\nimport { FullScreenErrorIndicator } from \"../../Modal/ErrorIndicator/FullScreenErrorIndicator\";\r\nimport { GeneralWarningModal } from \"../../Warnings & errors/GeneralWarningModal/GeneralWarningModal\";\r\n\r\ninterface ResourceAssignmentInterface {\r\n onClose?(): void;\r\n crew?: Maybe\r\n locationIndex: number;\r\n unix: number;\r\n}\r\n\r\nexport const ResourceAssignment: FC = props => {\r\n const [laborResources, setLaborResources] = useState[]>();\r\n const [equipmentResources, setEquipmentResources] = useState[]>();\r\n const selectedResources = useSelector((state: RootState) => state.app.schedule.locations?.[props.locationIndex]?.daysByUnix?.[props.unix]?.selectedResources)\r\n\r\n const jobNumber = useSelector((state: RootState) => state.app.start.jobNumber);\r\n const day = useSelector((state: RootState) => state.app.schedule?.locations?.[props.locationIndex]?.daysByUnix?.[props.unix])\r\n\r\n const { data, loading, error, refetch } = useQuery(CREW_RESOURCES_QUERY, {\r\n variables: { crewCode: props?.crew?.crewCode },\r\n skip: props?.crew?.crewCode == null || props?.crew?.crewCode === \"\",\r\n fetchPolicy: \"no-cache\"\r\n });\r\n\r\n useEffect(() => {\r\n document.body.style.overflow = 'hidden'\r\n return () => {\r\n document.body.removeAttribute('style')\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n window.onpopstate = (e: any) => {\r\n props?.onClose?.()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (data == null || data?.crewResources == null) return;\r\n\r\n const _laborResources = data?.crewResources\r\n .filter((cr: CustomCrewResourceComposition) => cr.resourceType === \"Labor\" && cr.JobNumber === jobNumber);\r\n\r\n const _equipmentResources = data?.crewResources\r\n .filter((cr: CustomCrewResourceComposition) => cr.resourceType === \"Equipment\" && cr.JobNumber === jobNumber);\r\n\r\n setLaborResources(_laborResources);\r\n setEquipmentResources(_equipmentResources);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [data])\r\n\r\n const dispatch = useDispatch();\r\n\r\n const modal = useContext(ModalContext);\r\n\r\n const openApplyCrewModal = () => {\r\n modal?.openModal({\r\n element: onApplyResources()}\r\n crewCode={props.crew?.crewCode as string}\r\n crewName={props.crew?.crewDescription as string}\r\n assignDate={moment(props.unix).utc().format(\"LL\")}\r\n />\r\n });\r\n }\r\n\r\n const openDeallocateAllResourcesFromDayModal = () => {\r\n modal?.openModal({\r\n element: { }} />\r\n });\r\n }\r\n\r\n const openMoreThan10ResoucesModal = () => {\r\n\r\n if (laborResources?.length! === 10 && !Object.keys(selectedResources).includes(\"PAV\") && (props.locationIndex === 1 || props.locationIndex === 2)) {\r\n modal?.openModal({\r\n element: { }}\r\n title=\"Error on adding a new crew\"\r\n message=\"You have more than 9 labor resources added on this crew and the Paving resource is not selected yet . Please try to edit and than apply\"\r\n yesNoButtons={false}\r\n />\r\n });\r\n }\r\n else if (equipmentResources?.length! === 10 && !Object.keys(selectedResources).includes(\"TRK\") && (props.locationIndex === 1 || props.locationIndex === 2)) {\r\n modal?.openModal({\r\n element: { }}\r\n title=\"Error on adding a new crew\"\r\n message=\"You have more than 9 equipment resources added on this crew and the Trucking resource is not selected yet . Please try to edit and than apply\"\r\n yesNoButtons={false}\r\n />\r\n });\r\n }\r\n else {\r\n modal?.openModal({\r\n element: { }}\r\n title=\"Error on adding a new crew\"\r\n message=\"You have more than 20 resources added on this crew. Please try to edit and than apply\"\r\n yesNoButtons={false}\r\n />\r\n });\r\n }\r\n }\r\n\r\n const isDayCleared = () => {\r\n if (day?.labor.jobInfos.length === 0 && day?.equip.jobInfos.length === 0) {\r\n return true;\r\n }\r\n if (day?.labor.jobInfos.length === 1) {\r\n if (Object.values(day?.labor.jobInfos).length === 0) {\r\n return true;\r\n }\r\n }\r\n\r\n if (day?.equip.jobInfos.length === 1) {\r\n if (Object.values(day?.equip.jobInfos).length === 0) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n const areMoreResources = () => {\r\n return equipmentResources?.length! > 10 || laborResources?.length! > 10 ||\r\n (laborResources?.length! === 10 && !Object.keys(selectedResources).includes(\"PAV\") && (props.locationIndex === 1 || props.locationIndex === 2)) ||\r\n ((equipmentResources?.length! === 10 && !Object.keys(selectedResources).includes(\"TRK\") && (props.locationIndex === 1 || props.locationIndex === 2)))\r\n }\r\n\r\n const onApplyResources = () => {\r\n if (!isDayCleared()) { openDeallocateAllResourcesFromDayModal(); return; }\r\n if (areMoreResources() === true) { openMoreThan10ResoucesModal(); return; }\r\n dispatch(addResourcesToDay({\r\n locationIndex: props.locationIndex,\r\n unix: props.unix,\r\n resources: data?.crewResources?.filter((c: CustomCrewResourceComposition) => c.JobNumber === jobNumber)\r\n }));\r\n\r\n props.onClose?.();\r\n\r\n dispatch(addDescriptionToDay({\r\n locationIndex: props.locationIndex,\r\n unix: props.unix,\r\n description: props.crew?.crewDescription! as string,\r\n }));\r\n }\r\n\r\n const onPressApplyButton = () => {\r\n if (!isDayCleared()) {\r\n openDeallocateAllResourcesFromDayModal();\r\n }\r\n else {\r\n openApplyCrewModal()\r\n }\r\n }\r\n\r\n const showResourceCrewModal = () => {\r\n modal?.openModal?.({\r\n element:\r\n c.JobNumber === jobNumber)}\r\n jobNumber={jobNumber}\r\n refetch={() => refetch()}\r\n />\r\n })\r\n }\r\n\r\n let sortedCurrentCrewResources = [...(data?.crewResources ?? [])]\r\n .filter((c: CustomCrewResourceComposition) => c.JobNumber === jobNumber)\r\n .sort((a, b) => a.resourceType! < b.resourceType! ? 1 : -1)\r\n .sort((n, p) => n.resourceID! > p.resourceID! ? 1 : -1);\r\n\r\n return (\r\n <>\r\n {loading && }\r\n {error != null && }\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
Crew Management
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Resource For {props?.crew?.crewCode} - {props.crew?.crewDescription}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Labour Resources Allocated:\r\n
\r\n
\r\n {laborResources?.length}/10\r\n
\r\n
\r\n
\r\n
\r\n Equipment Resources Allocated:\r\n
\r\n
\r\n {equipmentResources?.length}/10\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Resource Code
\r\n
Resource Description
\r\n
QTY Needed
\r\n
\r\n {\r\n sortedCurrentCrewResources != null && sortedCurrentCrewResources.map((cr: CustomCrewResourceComposition, index: number) => (\r\n
\r\n
\r\n {cr.resourceID}\r\n
\r\n
\r\n {cr.resourceDescription}\r\n
\r\n
\r\n {cr.QTYNeeded}\r\n
\r\n
\r\n ))\r\n }\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n}","import React, { FC } from \"react\";\r\nimport { Button } from \"../../Form/Button\";\r\nimport \"./TruckingResourcesNotAllocated.css\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\n\r\ninterface ITruckingResourcesNotAllocatedProps {\r\n onConfirm?(): void;\r\n onClose?(): void;\r\n onCancel?(): void;\r\n message: string;\r\n title: string;\r\n onConfirmButtonText?: string;\r\n yesNoButtons: boolean;\r\n}\r\n\r\nexport const TruckingResourcesNotAllocated: FC = (props) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
{props.title}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {props.message}\r\n
\r\n
\r\n {\r\n props.yesNoButtons === true\r\n ?
\r\n { props.onConfirm?.(); props.onClose?.(); }}\r\n title=\"Yes\"\r\n type=\"button\"\r\n className=\"Button\"\r\n />\r\n { props.onCancel?.(); props.onClose?.() }}\r\n title=\"No\"\r\n type=\"button\"\r\n className=\"Button\"\r\n />\r\n
\r\n :
\r\n { props.onClose?.() }}\r\n title=\"Ok\"\r\n type=\"button\"\r\n className=\"Button\"\r\n />\r\n
\r\n }\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { FC, useEffect, useContext, useState } from \"react\";\r\nimport { MasterCrewSchedule, TruckingData, Maybe, MaterialData, Query, SuperIntendentPavingCalendar } from \"../../../graphql/schema-types\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\nimport { useImmer } from \"use-immer\";\r\nimport { TextInput } from \"../../TextInput\";\r\nimport \"./EditTruckingResource.css\";\r\nimport { TruckingResourcesNotAllocated } from \"../../Warnings & errors/ApplyTruckingResources/TruckingResourcesNotAllocated\";\r\nimport { ModalContext } from \"../../Modal/ModalContext/ModalContext\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../redux/store\";\r\nimport { GeneralWarningModal } from \"../../Warnings & errors/GeneralWarningModal/GeneralWarningModal\";\r\nimport { useQuery } from \"@apollo/react-hooks\";\r\nimport { SUPER_INTENDENT_PAVING_CALENDAR_QUERY } from \"../../../graphql/queries/SUPER_INTENDENT_PAVING_CALENDAR_QUERY\";\r\nimport moment from \"moment\";\r\n\r\ninterface IEditTruckingResourceProps {\r\n onClose?(): void;\r\n truckingResource: Maybe;\r\n truckingResourceIndex: number;\r\n brokerData: Maybe[] | undefined;\r\n materialData: Maybe[] | undefined;\r\n truckData: Maybe[] | undefined;\r\n loadSiteData: Maybe[] | undefined;\r\n onEditResource(resource: MasterCrewSchedule, resourceIndex: number): void;\r\n fromPavingManagement: boolean;\r\n unix: number;\r\n}\r\n\r\nconst getInitialTruckingState = (): MasterCrewSchedule => {\r\n return ({\r\n broker: \"\",\r\n loadSite: \"\",\r\n material: \"\",\r\n notes: \"\",\r\n shift: \"\",\r\n type: \"\",\r\n qty: null,\r\n operationType: \"\"\r\n })\r\n}\r\n\r\nexport const EditTruckingResource: FC = (props) => {\r\n const [state, setState] = useImmer(getInitialTruckingState());\r\n const [disableButton, setDisableButton] = useState(false);\r\n const [hasSameShift, setSameShift] = useState(false);\r\n\r\n const pavingResurcesLocation1ForPaving = useSelector((state: RootState) => state.app.schedule.locations?.[1]?.daysByUnix?.[props.unix]?.paving?.pavingResources);\r\n\r\n const pavingResurcesLocation2ForPaving = useSelector((state: RootState) => state.app.schedule.locations?.[2]?.daysByUnix?.[props.unix]?.paving?.pavingResources);\r\n\r\n const jobNumber = useSelector((state: RootState) => state.app.start.jobNumber);\r\n\r\n const { data: lockedDaysData, refetch: refetchLockedDays } = useQuery>(SUPER_INTENDENT_PAVING_CALENDAR_QUERY, {\r\n variables: {\r\n where: {\r\n startDate: (moment.utc(moment().startOf('month').format(\"YYYY-MM-DD\")).unix()) * 1000,\r\n endDate: (moment.utc(moment().startOf('month').add(1, 'months').format(\"YYYY-MM-DD\")).unix()) * 1000,\r\n }\r\n },\r\n fetchPolicy: \"no-cache\"\r\n });\r\n\r\n useEffect(() => {\r\n if (props.truckingResource == null) return;\r\n\r\n setState(draft => {\r\n draft.broker = props.truckingResource?.broker;\r\n draft.loadSite = props.truckingResource?.loadSite;\r\n draft.material = props.truckingResource?.material;\r\n draft.notes = props.truckingResource?.notes;\r\n draft.qty = props.truckingResource?.qty;\r\n draft.shift = props.truckingResource?.shift;\r\n draft.type = props.truckingResource?.type;\r\n draft.operationType = props.truckingResource?.operationType;\r\n })\r\n\r\n }, [props.truckingResource, setState])\r\n\r\n useEffect(() => {\r\n document.body.style.overflow = 'hidden'\r\n return () => {\r\n document.body.removeAttribute('style')\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (state.material === \"\") return;\r\n const operationTypeForSelectedMaterial = props?.materialData?.filter(material => material?.value === state.material)\r\n\r\n setState(draft => {\r\n draft.operationType = operationTypeForSelectedMaterial?.[0]?.operationType as string;\r\n })\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [state.material])\r\n\r\n useEffect(() => {\r\n if (state.broker === \"\" ||\r\n state.loadSite === \"\" ||\r\n state.material === \"\" ||\r\n state.qty == null ||\r\n ((state.material === \"No Material\" && state.loadSite !== \"None – Job Prep\") && state.qty === 0) ||\r\n ((state.material !== \"No Material\" && state.loadSite === \"None – Job Prep\") && state.qty === 0) ||\r\n state.qty.toString() === \"\" ||\r\n state.shift === \"\" ||\r\n state.type === \"\" ||\r\n checkForLockedDays().includes(props.unix)) {\r\n setDisableButton(true)\r\n }\r\n else {\r\n setDisableButton(false)\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [state, setState, disableButton, setDisableButton])\r\n\r\n const modal = useContext(ModalContext);\r\n\r\n const shift = [\r\n {\r\n key: 1,\r\n value: \"N\"\r\n },\r\n {\r\n key: 2,\r\n value: \"D\"\r\n }\r\n ];\r\n\r\n const shiftSpecial = [\r\n {\r\n key: 1,\r\n value: \"N 2\"\r\n },\r\n {\r\n key: 2,\r\n value: \"D 2\"\r\n }\r\n ];\r\n\r\n const onBrokerChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n\r\n setState(draft => {\r\n draft.broker = _eValue;\r\n })\r\n }\r\n\r\n const onTypeChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n\r\n setState(draft => {\r\n draft.type = _eValue;\r\n })\r\n }\r\n\r\n const onMaterialChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n\r\n setState(draft => {\r\n draft.material = _eValue;\r\n })\r\n }\r\n\r\n const onLoadSiteChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n\r\n setState(draft => {\r\n draft.loadSite = _eValue;\r\n })\r\n }\r\n\r\n const onQtyChange = (e: React.ChangeEvent) => {\r\n let qty: number | \"\" = parseInt(e.target.value);\r\n qty = isNaN(qty) ? \"\" : qty;\r\n\r\n if (state.material != null && (state.material !== \"No Material\" && state.loadSite !== \"None – Job Prep\")) {\r\n if (qty < 0) { return }\r\n }\r\n\r\n if (qty.toString().length > 5) {\r\n return;\r\n }\r\n\r\n setState(draft => {\r\n draft.qty = qty as number;\r\n })\r\n }\r\n\r\n const onNotesChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value.length > 0 ? e.target.value : \" \";;\r\n\r\n if (_eValue.length > 250) { return }\r\n\r\n setState(draft => {\r\n draft.notes = _eValue\r\n })\r\n }\r\n\r\n const onShiftChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n\r\n const shiftPavLocation1 = pavingResurcesLocation1ForPaving?.map(e => e?.shift)?.[0];\r\n const shiftPavLocation2 = pavingResurcesLocation2ForPaving?.map(e => e?.shift)?.[0];\r\n\r\n setSameShift(false);\r\n\r\n if (state.operationType === \"paving\") {\r\n if ((props.truckingResource?.locationIndex === 1 && _eValue === shiftPavLocation2) || ((props.truckingResource?.locationIndex === 2 && _eValue === shiftPavLocation1))) {\r\n setSameShift(true);\r\n modal?.openModal?.({\r\n element: \r\n })\r\n }\r\n }\r\n\r\n setState(draft => {\r\n draft.shift = _eValue;\r\n })\r\n }\r\n\r\n const openTruckingResources = () => {\r\n modal?.openModal({\r\n element: props.onClose?.()}\r\n onCancel={() => { }}\r\n message=\"Exit without changes?\"\r\n title=\"Trucking resources not saved\"\r\n yesNoButtons={true}\r\n />\r\n });\r\n }\r\n\r\n const checkIfResourcesWasEdited = () => {\r\n if (props.truckingResource?.broker === state.broker &&\r\n props.truckingResource?.loadSite === state.loadSite &&\r\n props.truckingResource?.material === state.material &&\r\n props.truckingResource?.notes === state.notes &&\r\n props.truckingResource?.qty === state.qty &&\r\n props.truckingResource?.shift === state.shift &&\r\n props.truckingResource?.type === state.type) {\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n const checkForLockedDays = () => {\r\n let _lockedDays: Maybe[] = [];\r\n lockedDaysData?.superIntendentPavingCalendar.forEach((item: Maybe) => {\r\n if (item?.jobNumbersBlocked?.includes(jobNumber as number) || item?.status === true) _lockedDays.push(item.date)\r\n })\r\n return _lockedDays;\r\n }\r\n\r\n useEffect(() => {\r\n refetchLockedDays();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [state, setState, onBrokerChange, onTypeChange, onMaterialChange, onLoadSiteChange,\r\n onQtyChange, onNotesChange, onShiftChange])\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
Edit Trucking Resource
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n onQtyChange(e)}\r\n className=\"input-container\"\r\n placeholder=\"Qty\"\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n onNotesChange(e)}\r\n placeholder=\"Notes\"\r\n cols={30}\r\n rows={30}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { props.onEditResource(state, props.truckingResourceIndex); props.onClose?.() }}\r\n disabled={disableButton || hasSameShift}>\r\n Apply\r\n \r\n
\r\n )\r\n}","import React, { FC, useEffect, useState, useContext } from \"react\";\r\nimport \"./TruckingManagement.css\";\r\nimport moment from \"moment\";\r\nimport { useImmer } from \"use-immer\";\r\nimport { useQuery } from \"@apollo/react-hooks\";\r\nimport { CheckBox } from \"../../Form/CheckBox\";\r\nimport { MasterCrewSchedule, MasterCrewSchedulePaving, Maybe, Query, SuperIntendentPavingCalendar } from \"../../../graphql/schema-types\";\r\nimport { TRUCKING_DATAS_QUERY } from \"../../../graphql/queries/TRUCKING_DATAS_QUERY\";\r\nimport { TextInput } from \"../../TextInput\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { addTruckingResourcesToDay, updateShiftToPavingResources } from \"../../../redux/appSlice\";\r\nimport { RootState } from \"../../../redux/store\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\nimport { ModalContext } from \"../../Modal/ModalContext/ModalContext\";\r\nimport { TruckingResourcesNotAllocated } from \"../../Warnings & errors/ApplyTruckingResources/TruckingResourcesNotAllocated\";\r\nimport { EditTruckingResource } from \"../EditTruckingResource/EditTruckingResource\";\r\nimport { FullScreenLoadingIndicator } from \"../../Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\nimport { FullScreenErrorIndicator } from \"../../Modal/ErrorIndicator/FullScreenErrorIndicator\";\r\nimport { GeneralWarningModal } from \"../../Warnings & errors/GeneralWarningModal/GeneralWarningModal\";\r\nimport { SUPER_INTENDENT_PAVING_CALENDAR_QUERY } from \"../../../graphql/queries/SUPER_INTENDENT_PAVING_CALENDAR_QUERY\";\r\n\r\ninterface ITruckingManagementProps {\r\n unix: number;\r\n locationIndex: number\r\n jobNumber: number;\r\n onApply(value: string | number): void;\r\n onClose?(): void;\r\n shift?: string;\r\n material?: string;\r\n loadSite?: string;\r\n canAddPavingResources: boolean;\r\n fromPavingManagement: boolean;\r\n}\r\ntype State = {\r\n truckingResources: Maybe[];\r\n qtySum: number;\r\n addButtonDisabled: boolean;\r\n // pavResourceDisabled: boolean;\r\n};\r\n\r\nconst getInitialTruckingState = (): MasterCrewSchedule & { initial: boolean } => {\r\n return ({\r\n initial: true,\r\n broker: \"\",\r\n loadSite: \"\",\r\n material: \"\",\r\n notes: \"\",\r\n shift: \"\",\r\n type: \"\",\r\n qty: null,\r\n operationType: \"\",\r\n addedFromPaving: false,\r\n updated: true\r\n })\r\n}\r\n\r\nexport const TruckingManagement: FC = props => {\r\n const [state, setState] = useImmer({\r\n truckingResources: [],\r\n qtySum: 0,\r\n addButtonDisabled: true,\r\n // pavResourceDisabled: props.canAddPavingResources\r\n });\r\n const [truckingStateReset, setTruckingStateReset] = useState(true);\r\n const [truckingState, setTruckingState] = useImmer(getInitialTruckingState());\r\n const [checkedResources, setCheckedResources] = useState<{ [key: number]: boolean }>({});\r\n\r\n const truckingResourcesReduxState = useSelector((state: RootState) => state.app.schedule.locations?.[props.locationIndex]?.daysByUnix?.[props.unix]?.trucking?.truckingResources);\r\n const pavinvResourcesReduxState = useSelector((state: RootState) => state.app.schedule.locations?.[props.locationIndex]?.daysByUnix?.[props.unix]?.paving?.pavingResources);\r\n\r\n const { data: trucking, loading, error } = useQuery>(TRUCKING_DATAS_QUERY);\r\n\r\n const materials = useSelector((state: RootState) => state.app.materialDatas);\r\n const jobNumber = useSelector((state: RootState) => state.app.start.jobNumber);\r\n const pavingResurcesLocationForPaving = useSelector((state: RootState) => state.app.schedule.locations?.[props.locationIndex].daysByUnix?.[props.unix]?.paving?.pavingResources);\r\n\r\n const { data: lockedDaysData, refetch: refetchLockedDays } = useQuery>(SUPER_INTENDENT_PAVING_CALENDAR_QUERY, {\r\n variables: {\r\n where: {\r\n startDate: (moment.utc(moment().startOf('month').format(\"YYYY-MM-DD\")).unix()) * 1000,\r\n endDate: (moment.utc(moment().startOf('month').add(1, 'months').format(\"YYYY-MM-DD\")).unix()) * 1000,\r\n }\r\n },\r\n fetchPolicy: \"no-cache\"\r\n });\r\n\r\n useEffect(() => {\r\n document.body.style.overflow = 'hidden'\r\n return () => {\r\n document.body.removeAttribute('style')\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n window.onpopstate = (e: any) => {\r\n props?.onClose?.()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (props.material != null && props.shift != null && props.loadSite != null) {\r\n setTruckingState(draft => {\r\n draft.loadSite = props.loadSite;\r\n draft.material = (props.fromPavingManagement && !props.canAddPavingResources) ? \"\" : props.material;\r\n draft.shift = props.shift;\r\n })\r\n setTruckingStateReset(false);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (truckingStateReset === false) return;\r\n\r\n if (props.material != null && props.shift != null && props.loadSite != null) {\r\n setTruckingState(draft => {\r\n draft.loadSite = props.loadSite;\r\n draft.material = (props.fromPavingManagement && !props.canAddPavingResources) ? \"\" : props.material;\r\n draft.shift = props.shift;\r\n })\r\n setTruckingStateReset(false);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [truckingStateReset])\r\n\r\n useEffect(() => {\r\n if (state.truckingResources.length > 0) return;\r\n\r\n if (truckingResourcesReduxState.length > 0) {\r\n setState(draft => {\r\n draft.truckingResources = [];\r\n draft.truckingResources.push(...truckingResourcesReduxState);\r\n });\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [truckingResourcesReduxState])\r\n\r\n const dispatch = useDispatch();\r\n const modal = useContext(ModalContext);\r\n\r\n useEffect(() => {\r\n if (state == null || state.truckingResources == null) return;\r\n setState(draft => {\r\n draft.qtySum = state.truckingResources\r\n .map(tr => tr?.qty)\r\n .reduce((previousValue, currentValue) => previousValue! as number + currentValue! as number, 0) as number;\r\n })\r\n }, [state, setState])\r\n\r\n useEffect(() => {\r\n if (truckingState.broker === \"\" ||\r\n truckingState.loadSite === \"\" ||\r\n truckingState.material === \"\" ||\r\n truckingState.qty == null ||\r\n ((props.material === \"No Material\" && props.loadSite !== \"None – Job Prep\") && truckingState.qty === 0) ||\r\n ((props.material !== \"No Material\" && props.loadSite === \"None – Job Prep\") && truckingState.qty === 0) ||\r\n ((props.material !== \"No Material\" && props.loadSite !== \"None – Job Prep\") && truckingState.qty === 0) ||\r\n truckingState.qty.toString() === \"\" ||\r\n truckingState.shift === \"\" ||\r\n truckingState.type === \"\") {\r\n setState(draft => {\r\n draft.addButtonDisabled = true;\r\n })\r\n }\r\n else {\r\n setState(draft => {\r\n draft.addButtonDisabled = false;\r\n })\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [truckingState, setState]);\r\n\r\n useEffect(() => {\r\n if (truckingState.material === \"\") return;\r\n const operationTypeForSelectedMaterial = materials?.filter(material => material?.value === truckingState.material)\r\n\r\n setTruckingState(draft => {\r\n draft.operationType = operationTypeForSelectedMaterial?.[0]?.operationType as string;\r\n });\r\n setTruckingStateReset(false);\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [materials, truckingState?.material])\r\n\r\n const _brokerData = trucking?.truckingDatas\r\n .filter(td => td?.type === \"Broker\")\r\n .sort((a, b) => a?.value! < b?.value! ? -1 : 1);\r\n\r\n if (_brokerData !== null && _brokerData !== undefined) {\r\n _brokerData.push({\r\n key: \"Other\",\r\n type: \"Broker\",\r\n value: \"Other (log in notes)\"\r\n })\r\n }\r\n\r\n let _materialData = materials != null && materials.length > 0 ? materials : [];\r\n if (_materialData !== null && _materialData !== undefined && _materialData.length > 0) {\r\n _materialData = [..._materialData, {\r\n key: \"Other\",\r\n operationType: \" \",\r\n value: \"Other (log in notes)\",\r\n }]\r\n }\r\n\r\n const _trukData = trucking?.truckingDatas\r\n .filter(td => td?.type === \"TruckType\")\r\n .sort((a, b) => (a?.value! < b?.value!) && a?.value! !== \"Other (log in notes)\" ? -1 : 1);\r\n\r\n if (_trukData !== null && _trukData !== undefined) {\r\n _trukData.push({\r\n key: \"Other\",\r\n type: \"Broker\",\r\n value: \"Other (log in notes)\"\r\n })\r\n }\r\n\r\n const _loadSiteData = trucking?.truckingDatas\r\n .filter(td => td?.type === \"Plant\")\r\n .sort((a, b) => (a?.value! < b?.value!) && a?.value! !== \"Other (log in notes)\" ? -1 : 1);\r\n\r\n if (_loadSiteData !== null && _loadSiteData !== undefined) {\r\n _loadSiteData.push({\r\n key: \"Other\",\r\n type: \"Broker\",\r\n value: \"Other (log in notes)\"\r\n })\r\n }\r\n\r\n const onCheckboxChange = (index: number, isChecked: boolean) => {\r\n const _checkedResources = { ...checkedResources };\r\n\r\n if (isChecked === false) {\r\n delete _checkedResources[index as number]\r\n setCheckedResources(_checkedResources);\r\n return;\r\n }\r\n\r\n setCheckedResources({ ...checkedResources, [index]: isChecked })\r\n }\r\n\r\n const onOpenDelete = () => {\r\n let canDelete = true;\r\n\r\n Object.keys(checkedResources).forEach(cr => {\r\n if (state.truckingResources[parseInt(cr)]?.operationType === \"paving\") {\r\n canDelete = false;\r\n }\r\n });\r\n\r\n if (canDelete === true) {\r\n modal?.openModal?.({\r\n element: onDelete()}\r\n onCancel={() => { }}\r\n yesNoButtons={true}\r\n />\r\n });\r\n } else {\r\n modal?.openModal?.({\r\n element: { }}\r\n yesNoButtons={false}\r\n />\r\n });\r\n }\r\n }\r\n\r\n const onDelete = () => {\r\n setState(draft => {\r\n Object.keys(checkedResources).forEach(cr => {\r\n delete draft.truckingResources[parseInt(cr)];\r\n });\r\n draft.truckingResources = draft.truckingResources.filter(tr => tr != null);\r\n })\r\n setCheckedResources(() => ({}));\r\n }\r\n\r\n // const showNoPavingModal = () => {\r\n // modal?.openModal?.({\r\n // element: \r\n // });\r\n // }\r\n\r\n const onAdd = () => {\r\n // if ((state.pavResourceDisabled || !props.canAddPavingResources) && truckingState?.operationType === \"paving\") {\r\n // if (state.pavResourceDisabled) {\r\n // showNoPavingModal();\r\n // return;\r\n // }\r\n\r\n setState(draft => {\r\n draft.truckingResources.push({\r\n jobNumber: props.jobNumber,\r\n searchGSI_JobNumber: props.jobNumber,\r\n broker: truckingState.broker,\r\n material: truckingState.material,\r\n qty: truckingState.qty,\r\n type: truckingState.type,\r\n loadSite: truckingState.loadSite,\r\n notes: truckingState.notes,\r\n date: props.unix,\r\n shift: truckingState.shift,\r\n locationIndex: props.locationIndex,\r\n operationType: truckingState.operationType,\r\n addedFromPaving: truckingState.addedFromPaving,\r\n updated: true,\r\n timeStamp: truckingState.timeStamp\r\n })\r\n })\r\n\r\n setTruckingState(() => getInitialTruckingState())\r\n setTruckingStateReset(true);\r\n }\r\n\r\n // const reinitializeState = () => {\r\n // if (props.material != null && props.shift != null && props.loadSite != null) {\r\n // setTruckingState(draft => {\r\n // draft.loadSite = props.loadSite;\r\n // draft.material = (props.fromPavingManagement && !props.canAddPavingResources) ? \"\" : props.material;\r\n // draft.shift = props.shift;\r\n // })\r\n // setTruckingStateReset(false);\r\n // }\r\n // }\r\n\r\n const onOpenApply = () => {\r\n if (pavingResurcesLocationForPaving.length > 0 && state?.truckingResources.filter(t => t?.operationType === \"paving\")?.length === 0) return;\r\n modal?.openModal?.({\r\n element: onApply()}\r\n onCancel={() => { }}\r\n yesNoButtons={true}\r\n />\r\n });\r\n }\r\n\r\n const onApply = () => {\r\n props.onApply(state.qtySum);\r\n let truckingRes: Maybe[] = [];\r\n state.truckingResources.forEach(tr => {\r\n if (tr != null) {\r\n truckingRes.push({\r\n ...tr,\r\n updated: true,\r\n }\r\n )\r\n }\r\n })\r\n\r\n dispatch(addTruckingResourcesToDay({ locationIndex: props.locationIndex, unix: props.unix, truckingResources: truckingRes }));\r\n\r\n let pavTrkRes = truckingRes.filter(tr => tr?.operationType === \"paving\")[0];\r\n let pavingRes: Maybe[] = [];\r\n if (pavinvResourcesReduxState[0]?.shift !== pavTrkRes?.shift) {\r\n let loadOutTime: string = \"\";\r\n pavinvResourcesReduxState.forEach(pav => {\r\n if (pavTrkRes?.shift === \"N\" && pav?.loadOutTime?.includes(\"AM\")) {\r\n loadOutTime = pav?.loadOutTime?.replace(\"AM\", \"PM\");\r\n\r\n if (pav?.loadOutTime === \"00:00 AM\") {\r\n loadOutTime = \"12:00 PM\";\r\n }\r\n if (pav?.loadOutTime === \"00:30 AM\") {\r\n loadOutTime = \"12:30 PM\";\r\n }\r\n }\r\n\r\n if (pavTrkRes?.shift === \"D\" && pav?.loadOutTime?.includes(\"PM\")) {\r\n loadOutTime = pav?.loadOutTime?.replace(\"PM\", \"AM\");\r\n\r\n if (pav?.loadOutTime === \"12:00 PM\") {\r\n loadOutTime = \"00:00 AM\";\r\n }\r\n if (pav?.loadOutTime === \"12:30 PM\") {\r\n loadOutTime = \"00:30 AM\";\r\n }\r\n }\r\n\r\n pavingRes.push({\r\n ...pav,\r\n shift: pavTrkRes?.shift,\r\n loadOutTime\r\n })\r\n });\r\n dispatch(updateShiftToPavingResources({ locationIndex: props.locationIndex, unix: props.unix, pavingResources: pavingRes }))\r\n }\r\n props.onClose?.();\r\n }\r\n\r\n const onBrokerChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n\r\n setTruckingState(draft => {\r\n draft.broker = _eValue;\r\n })\r\n setTruckingStateReset(false);\r\n }\r\n\r\n const onTypeChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n\r\n setTruckingState(draft => {\r\n draft.type = _eValue;\r\n })\r\n setTruckingStateReset(false);\r\n }\r\n\r\n const onMaterialChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n setTruckingState(draft => {\r\n draft.material = _eValue;\r\n })\r\n setTruckingStateReset(false);\r\n }\r\n\r\n const onLoadSiteChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n setTruckingState(draft => {\r\n draft.loadSite = _eValue;\r\n })\r\n setTruckingStateReset(false);\r\n }\r\n\r\n const onQtyChange = (e: React.ChangeEvent) => {\r\n let qty: number | \"\" = parseInt(e.target.value);\r\n qty = isNaN(qty) ? \"\" : qty;\r\n\r\n // if the material is No Material & the plant(it's called loadSite in TruckingManagement) is None – Job Prep than you an add 0 as qty\r\n if (props?.material !== \"No Material\" && props?.loadSite !== \"None – Job Prep\") {\r\n if (qty < 0) { return }\r\n }\r\n\r\n if (qty.toString().length > 5) {\r\n return;\r\n }\r\n\r\n setTruckingState(draft => {\r\n draft.qty = qty as number;\r\n })\r\n setTruckingStateReset(false);\r\n }\r\n\r\n const onNotesChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value.length > 0 ? e.target.value : \" \";;\r\n\r\n if (_eValue.length > 250) { return }\r\n\r\n setTruckingState(draft => {\r\n draft.notes = _eValue\r\n })\r\n setTruckingStateReset(false);\r\n }\r\n\r\n const onShiftChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n\r\n setTruckingState(draft => {\r\n draft.shift = _eValue;\r\n })\r\n setTruckingStateReset(false);\r\n }\r\n\r\n const shift = [\r\n {\r\n key: 1,\r\n value: \"N\"\r\n },\r\n {\r\n key: 2,\r\n value: \"D\"\r\n }\r\n ];\r\n\r\n\r\n const shiftSpecial = [\r\n {\r\n key: 1,\r\n value: \"N 2\"\r\n },\r\n {\r\n key: 2,\r\n value: \"D 2\"\r\n }\r\n ];\r\n\r\n const openTruckingResources = () => {\r\n modal?.openModal({\r\n element: props.onClose?.()}\r\n />\r\n });\r\n }\r\n\r\n const areTruckingResourcesUnsaved = () => {\r\n if (state.truckingResources.length > truckingResourcesReduxState.length || state.truckingResources.length < truckingResourcesReduxState.length) {\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n const onEditTrResource = (resource: MasterCrewSchedule, index: number) => {\r\n if (state.truckingResources == null || state.truckingResources[index] == null) { return }\r\n\r\n setState(draft => {\r\n if (draft.truckingResources == null || draft.truckingResources[index] == null) { return }\r\n\r\n draft.truckingResources[index]!.broker = resource.broker;\r\n draft.truckingResources[index]!.loadSite = resource.loadSite;\r\n draft.truckingResources[index]!.material = resource.material;\r\n draft.truckingResources[index]!.notes = resource.notes;\r\n draft.truckingResources[index]!.qty = resource.qty;\r\n draft.truckingResources[index]!.shift = resource.shift;\r\n draft.truckingResources[index]!.type = resource.type;\r\n draft.truckingResources[index]!.operationType = resource.operationType == null ? \" \" : resource.operationType\r\n draft.truckingResources[index]!.addedFromPaving = false;\r\n })\r\n }\r\n\r\n const openEditTruckingResource = (resourceToEdit: Maybe, resourceToEditIndex: number) => {\r\n modal?.openModal({\r\n element: \r\n });\r\n }\r\n\r\n const checkForLockedDays = () => {\r\n let _lockedDays: Maybe[] = [];\r\n lockedDaysData?.superIntendentPavingCalendar.forEach((item: Maybe) => {\r\n if (item?.jobNumbersBlocked?.includes(jobNumber as number) || item?.status === true) _lockedDays.push(item.date)\r\n })\r\n return _lockedDays;\r\n }\r\n\r\n useEffect(() => {\r\n refetchLockedDays();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [state, setState, onEditTrResource, onShiftChange, onNotesChange, onQtyChange, onLoadSiteChange, onMaterialChange,\r\n onTypeChange, onBrokerChange, onCheckboxChange])\r\n\r\n return (\r\n <>\r\n {loading && }\r\n {error != null && }\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
{moment(props.unix).utc().format('LL')}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Trucking for job number {props.jobNumber}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n onQtyChange(e)}\r\n className=\"input-container\"\r\n placeholder=\"Qty\"\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {props.fromPavingManagement === false\r\n ? _materialData?.map((md, index) => (\r\n md?.operationType !== \"paving\" && (\r\n \r\n )\r\n ))\r\n : _materialData?.filter((lr) => lr?.operationType === \"paving\")?.map((md, index) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n onNotesChange(e)}\r\n placeholder=\"Notes\"\r\n cols={30}\r\n rows={30}\r\n />\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n onAdd()}\r\n disabled={state.addButtonDisabled || ((checkForLockedDays().includes(props.unix)) && truckingState.operationType === \"paving\")}\r\n title={(checkForLockedDays().includes(props.unix)) ? \"Locked day\" : \"\"}\r\n >\r\n Add to trucking table\r\n \r\n
\r\n
\r\n
Trucking Table
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Edit
\r\n
\r\n Broker\r\n
\r\n
\r\n Type\r\n
\r\n
\r\n QTY\r\n
\r\n
\r\n Mat\r\n
\r\n
\r\n Load Site\r\n
\r\n
\r\n Shift\r\n
\r\n
\r\n Notes\r\n
\r\n
\r\n
\r\n {\r\n state.truckingResources.map((tr, index) =>\r\n tr != null\r\n ? (
\r\n
\r\n { onCheckboxChange(index, e.target.checked) }}\r\n checked={checkedResources[index] || false}\r\n disabled={(checkForLockedDays().includes(props.unix)) && tr?.operationType === \"paving\" ? true : false}\r\n />\r\n
\r\n openEditTruckingResource(tr, index)}\r\n disabled={(checkForLockedDays().includes(props.unix)) && tr?.operationType === \"paving\" ? true : false}\r\n >\r\n Edit\r\n \r\n
\r\n {tr?.broker}\r\n
\r\n
\r\n {tr?.type}\r\n
\r\n
\r\n {tr?.qty}\r\n
\r\n
\r\n {tr?.material}\r\n
\r\n
\r\n {tr?.loadSite}\r\n
\r\n
\r\n {tr?.shift}\r\n
\r\n
\r\n {tr?.notes}\r\n
\r\n
)\r\n : null\r\n )\r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n}","import React, { FC } from \"react\";\r\nimport { Button } from \"../../Form/Button\";\r\nimport \"./CancelAssignment.css\";\r\n\r\ninterface CancelAssignmentInterface {\r\n onConfirm?(): void;\r\n onCancel?(): void;\r\n onClose?(): void;\r\n}\r\n\r\nexport const CancelAssignment: FC = (props) => {\r\n return (\r\n
\r\n
\r\n
\r\n
Cancel Assignment
\r\n
{ props.onCancel?.(); props.onClose?.() }} style={{ padding: \"0 1em\" }}>X
\r\n
\r\n
\r\n
\r\n All edits here will be lost.
\r\n Are you sure you want to cancel?\r\n
\r\n
\r\n
\r\n { props.onConfirm?.(); props.onClose?.() }}\r\n title=\"Yes\"\r\n type=\"button\"\r\n className=\"Button\"\r\n />\r\n { props.onCancel?.(); props.onClose?.() }}\r\n title=\"No\"\r\n type=\"button\"\r\n className=\"Button\"\r\n />\r\n
\r\n
\r\n
\r\n );\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const CANNED_QUERY = gql`\r\n query canned {\r\n canned {\r\n\t\tcannedID\r\n\t\tcannedCode\r\n\t\tcannedResources {\r\n\t\t\tresourceID,\r\n\t\t\tresourceQty\r\n\t\t}\r\n\t}\r\n }\r\n`;","import React, { FC, CSSProperties, useEffect, useRef, useReducer, ReactNode, useState } from \"react\";\r\nimport flatpickr from \"flatpickr\";\r\nimport { Instance } from \"flatpickr/dist/types/instance\";\r\nimport moment from \"moment\";\r\nimport \"flatpickr/dist/themes/material_green.css\";\r\nimport { Maybe } from \"../../../graphql/schema-types\";\r\n\r\n\r\nexport interface ISelectMultipleDatesProps {\r\n currentDates: string[] | null | undefined;\r\n disabled?: boolean;\r\n /**\r\n * Fires only when the picker changes the date\r\n * @param date number\r\n */\r\n onPickerChange?(dates: string[]): void;\r\n containerStyle?: CSSProperties;\r\n children?(state: IState): ReactNode;\r\n dates?: { [date: string]: boolean };\r\n redDates?: Maybe[];\r\n lockedDays?: Maybe[];\r\n generatedDays?: Maybe[];\r\n}\r\n\r\ninterface IState {\r\n currentDate: string | null;\r\n dates: string[] | null;\r\n visible: boolean;\r\n previousAction?: IAction;\r\n}\r\n\r\nenum ActionTypes {\r\n SET_PICKER_DATES = \"SET_PICKER_DATE\",\r\n SET_PROPS_DATES = \"SET_PROPS_DATE\",\r\n SET_VISIBILITY = \"SET_VISIBILITY\"\r\n}\r\n\r\ninterface IAction {\r\n type: ActionTypes;\r\n payload?: T;\r\n}\r\n\r\nconst getInitialState = (): IState => ({\r\n dates: null,\r\n currentDate: null,\r\n\r\n visible: false,\r\n});\r\n\r\nconst getDateFromSelectedDates = (date: Date) => {\r\n let _date: Date;\r\n if (date == null) {\r\n _date = moment().toDate();\r\n } else {\r\n _date = date;\r\n }\r\n return _date\r\n}\r\n\r\nconst mainReducer = (state: IState, action: IAction): IState => {\r\n switch (action.type) {\r\n\r\n case ActionTypes.SET_PICKER_DATES: {\r\n const dates = action.payload as Date[];\r\n let _dates: string[] = [];\r\n\r\n dates.forEach((date) => {\r\n const d = getDateFromSelectedDates(date);\r\n const _date = moment(d).format(\"YYYY.MM.DD\")\r\n _dates.push(_date);\r\n })\r\n\r\n return ({\r\n ...state,\r\n dates: _dates,\r\n });\r\n }\r\n\r\n case ActionTypes.SET_PROPS_DATES: {\r\n let dates: string[] = action.payload;\r\n\r\n return ({\r\n ...state,\r\n dates,\r\n });\r\n }\r\n\r\n case ActionTypes.SET_VISIBILITY: {\r\n const visible = action.payload as boolean;\r\n return ({\r\n ...state,\r\n visible,\r\n });\r\n }\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return state;\r\n}\r\n\r\nconst reducer = (state: IState, action: IAction): IState => {\r\n return ({\r\n ...mainReducer(state, action),\r\n previousAction: action,\r\n });\r\n}\r\n\r\nexport const SelectMultipleDatesPavingManagement: FC = props => {\r\n const [state, dispatch] = useReducer(reducer, getInitialState())\r\n const [disabledDates, setDisabledDates] = useState[]>([]);\r\n\r\n const fp = useRef(null);\r\n const elem = useRef(null);\r\n\r\n // on props change, the instance should reflect that\r\n useEffect(() => {\r\n if (props.currentDates == null) return;\r\n dispatch({ type: ActionTypes.SET_PROPS_DATES, payload: props.currentDates });\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n fp.current != null\r\n ? fp.current.setDate(\r\n props.currentDates.map(date => moment(date, \"YYYY.MM.DD\").toDate())\r\n )\r\n : null;\r\n }, [props.currentDates])\r\n\r\n // destroy picker on state.visible === false\r\n useEffect(() => {\r\n if (state.visible) return;\r\n if (fp.current == null) return;\r\n destroy();\r\n }, [state.visible])\r\n\r\n const onWheel = useRef(() => {\r\n dispatch({ type: ActionTypes.SET_VISIBILITY, payload: false });\r\n });\r\n\r\n const destroy = () => {\r\n document.removeEventListener(\"wheel\", onWheel.current);\r\n if (fp.current == null) return;\r\n fp.current.close();\r\n fp.current.destroy();\r\n (fp.current as any) = null;\r\n };\r\n\r\n useEffect(() => {\r\n return () => {\r\n destroy();\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const onDayCreate = (dObj: any, dStr: any, fp: any, dayElem: HTMLElement & any) => {\r\n\r\n const _date = moment(dayElem.dateObj).format(\"YYYY.MM.DD\");\r\n\r\n if (props.lockedDays?.includes((moment.utc(_date, \"YYYY-MM-DD\").unix()) * 1000)) {\r\n dayElem.innerHTML = `
${dayElem.innerHTML}
`\r\n }\r\n if (!props.generatedDays?.includes((moment.utc(_date, \"YYYY-MM-DD\").unix()) * 1000)) {\r\n dayElem.innerHTML = `
${dayElem.innerHTML}
`\r\n let _disDates = disabledDates;\r\n props.lockedDays?.forEach(ld => {\r\n _disDates.push(ld)\r\n })\r\n _disDates.push((moment.utc(_date, \"YYYY-MM-DD\").unix()) * 1000);\r\n setDisabledDates(_disDates);\r\n }\r\n if (props?.redDates?.includes(moment(dayElem.dateObj).format(\"YYYY.MM.DD\"))) {\r\n dayElem.innerHTML = `
${dayElem.innerHTML}
`\r\n }\r\n if (props?.dates?.[moment(dayElem.dateObj).format(\"MM/DD/YYYY\")] !== true) return;\r\n dayElem.innerHTML = `${dayElem.innerHTML}`\r\n }\r\n\r\n useEffect(() => {\r\n if (fp.current == null) return;\r\n fp.current.set(\"onDayCreate\", onDayCreate)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.currentDates, props.redDates, props.lockedDays, props.generatedDays, props.dates, disabledDates])\r\n\r\n const create = () => {\r\n if (elem.current == null) return;\r\n if (fp.current != null) return;\r\n (fp.current as any) = flatpickr(elem.current, {\r\n onChange(selectedDates, dateStr, instance) {\r\n dispatch({ type: ActionTypes.SET_PICKER_DATES, payload: selectedDates });\r\n\r\n props.onPickerChange?.(selectedDates.map(date => moment(date).format(\"YYYY.MM.DD\")));\r\n },\r\n onReady(selectedDates, dateStr, instance) {\r\n instance.open();\r\n },\r\n onOpen(selectedDates, dateStr, instance) {\r\n dispatch({ type: ActionTypes.SET_VISIBILITY, payload: true });\r\n },\r\n onClose(selectedDates, dateStr, instance) {\r\n dispatch({ type: ActionTypes.SET_VISIBILITY, payload: false });\r\n },\r\n disableMobile: true,\r\n showMonths: 1,\r\n onDayCreate,\r\n dateFormat: \"d m Y\",\r\n mode: \"multiple\",\r\n minDate: (moment.utc(moment().startOf('month').format(\"YYYY-MM-DD\")).unix()) * 1000,\r\n maxDate: ((moment.utc(moment().startOf('month').add(6, 'months').format(\"YYYY-MM-DD\")).unix()) * 1000),\r\n //disable: props.lockedDays?.map(day => moment(day!).format(\"DD MM YYYY\"))\r\n disable: disabledDates.map(day => moment(day!).format(\"DD MM YYYY\")),\r\n enable: props?.generatedDays?.map(day => moment(day!).format(\"DD MM YYYY\"))\r\n });\r\n document.addEventListener(\"wheel\", onWheel.current);\r\n if (props.currentDates != null) {\r\n fp.current!.setDate(\r\n props.currentDates.map(date => moment(date, \"YYYY.MM.DD\").toDate())\r\n );\r\n }\r\n };\r\n\r\n return (\r\n
\r\n {/* {moment(state.dates?.map(date => date)[0]).format('LL')} */}\r\n {moment(state.dates?.map(date => date)?.[0], \"YYYY.MM.DD\").format('DD-MMM-YYYY')}\r\n
\r\n );\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const LOAD_OUT_TIME_QUERY = gql`\r\n query loadOutTimeValues {\r\n loadOutTimeValues {\r\n key\r\n value\r\n\t }\r\n }\r\n`;","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport \"./PavingManagement.css\";\r\nimport { FC, useContext, useEffect, memo, useState, useCallback } from \"react\";\r\nimport React from \"react\";\r\nimport moment from \"moment\";\r\nimport { Maybe, Query, MasterCrewSchedulePaving, ResourceCode, CannedResources, JobInfoFullInput, AddMasterCrewSchedulesPavingInput, MasterCrewSchedule, SuperIntendentPavingCalendar } from \"../../graphql/schema-types\";\r\nimport { TextInput } from \"../TextInput\";\r\nimport { CheckBox } from \"../Form/CheckBox\";\r\nimport { useImmer } from \"use-immer\";\r\nimport { RESOURCE_CODES_QUERY } from \"../../graphql/queries/RESOURCE_CODES_QUERY\";\r\nimport { useApolloClient, useQuery } from \"@apollo/react-hooks\";\r\nimport { ModalContext } from \"../Modal/ModalContext/ModalContext\";\r\nimport { CancelAssignment } from \"../Warnings & errors/CancelAssignment/CancelAssignment\";\r\nimport { TRUCKING_DATAS_QUERY } from \"../../graphql/queries/TRUCKING_DATAS_QUERY\";\r\nimport { addPavingFromPavingManagement, addPavingResourcesToDay, addTruckingQTYFromPaving, addTruckingResourcesToDayFromPavingManagement, clearDay, RemoveJob } from \"../../redux/appSlice\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { TruckingManagement } from \"../Trucking/TruckingManagement/TruckingManagement\";\r\nimport { toMap } from \"../../utils/toMap\";\r\nimport { toMultiMap } from \"../../utils/toMultiMap\";\r\nimport { CloseButton } from \"../Form/CloseButton\";\r\nimport { RootState } from \"../../redux/store\";\r\nimport { CANNED_QUERY } from \"../../graphql/queries/CANNED_QUERY\";\r\nimport { TruckingResourcesNotAllocated } from \"../Warnings & errors/ApplyTruckingResources/TruckingResourcesNotAllocated\";\r\nimport { SelectMultipleDatesPavingManagement } from \"./SelectMultipleDatesPavingManagement/SelectMultipleDatesPavingManagement\";\r\nimport { DATES_PAVING_CALENDAR_QUERY } from \"../../graphql/queries/DATES_PAVING_CALENDAR\";\r\nimport { GeneralWarningModal } from \"../Warnings & errors/GeneralWarningModal/GeneralWarningModal\";\r\nimport { LOAD_OUT_TIME_QUERY } from \"../../graphql/queries/LOAD_OUT_TIME_QUERY\";\r\nimport { SUPER_INTENDENT_PAVING_CALENDAR_QUERY } from \"../../graphql/queries/SUPER_INTENDENT_PAVING_CALENDAR_QUERY\";\r\nimport { FullScreenLoadingIndicator } from \"../Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\nimport to from \"await-to-js\";\r\n\r\ninterface IPavingManagementProps {\r\n unix: number;\r\n locationIndex: number\r\n jobNumber: number;\r\n pavingResources: Maybe[];\r\n onApply(value: string | number): void;\r\n onClose?(): void;\r\n onAddedFromPaving?(): void;\r\n indexPosition?: number | null;\r\n}\r\n\r\ntype State = {\r\n resources: Maybe[];\r\n qtySum: number;\r\n buttonDisabled: boolean;\r\n cannedCode: string;\r\n startDate: string;\r\n endDate: string\r\n};\r\n\r\ninterface CheckBoxes {\r\n grinderCheckBox: boolean,\r\n rtsSupportCheckBox: boolean,\r\n}\r\n\r\nconst getInitialPavingState = (): MasterCrewSchedulePaving & CheckBoxes => {\r\n return ({\r\n material: \"\",\r\n mixSubmital: \"\",\r\n plant: \"\",\r\n tonnage: null,\r\n oilTruck: null,\r\n notes: \"\",\r\n shift: \"\",\r\n qty: null,\r\n resourceID: \"\",\r\n resourceDescription: \"\",\r\n resourceType: \"\",\r\n tph: null,\r\n rtsSupport: \"\",\r\n bookTruckVendor: \"\",\r\n grinder4ft: null,\r\n grinder6ft: null,\r\n grinder7ft: null,\r\n grinder12ft: null,\r\n extraWork: \"N\",\r\n uts: \"N\",\r\n mixDesignApproval: \"N\",\r\n grinderCheckBox: false,\r\n rtsSupportCheckBox: true,\r\n addedFromPaving: false,\r\n updated: true,\r\n loadOutTime: \"\",\r\n addedDate: \"\",\r\n })\r\n}\r\n\r\nconst PavingManagement: FC = props => {\r\n\r\n const dateFormat = \"YYYY.MM.DD\";\r\n\r\n const generatedDays = useSelector((state: RootState) => state.app.schedule.locations?.[props.locationIndex].days);\r\n\r\n const [state, setState] = useImmer({\r\n resources: [],\r\n qtySum: 0,\r\n buttonDisabled: true,\r\n cannedCode: \"\",\r\n startDate: moment().startOf('month').format(dateFormat),\r\n endDate: moment().startOf('month').add(3, 'months').format(dateFormat)\r\n });\r\n\r\n const [pavingState, setPavingState] = useImmer(getInitialPavingState());\r\n const [selectedDates, setSelectedDates] = useState([moment(props?.unix).utc().format(\"YYYY.MM.DD\")]);\r\n // const [datesOutOfGeneratedDays, setDatesOutOfGeneratedDays] = useState([]);\r\n // this state is filled when the other location has the same shift\r\n const [hasSameShift, setSameShift] = useState(false);\r\n const [loadingSave, setLoadingSave] = useState(false);\r\n\r\n const { data: datesInPavingCalendar } = useQuery>(DATES_PAVING_CALENDAR_QUERY, {\r\n variables: {\r\n data: {\r\n startDate: (moment(state.startDate, \"YYYY-MM-DD\").unix()) * 1000,\r\n endDate: (moment(state.endDate, \"YYYY-MM-DD\").unix()) * 1000\r\n }\r\n },\r\n skip: state.startDate == null || state.startDate === \"\" || state.endDate == null || state.endDate === \"\",\r\n fetchPolicy: \"no-cache\"\r\n });\r\n\r\n const {\r\n loading: lockedDaysLoading, data: lockedDaysData, refetch: refetchLockedDays } = useQuery>(SUPER_INTENDENT_PAVING_CALENDAR_QUERY, {\r\n variables: {\r\n where: {\r\n startDate: generatedDays?.[0],\r\n endDate: generatedDays?.[generatedDays.length - 1]\r\n }\r\n },\r\n fetchPolicy: \"no-cache\",\r\n skip: generatedDays == null || generatedDays?.length === 0\r\n });\r\n\r\n const { data: loadOutTimeData } = useQuery>(LOAD_OUT_TIME_QUERY, { fetchPolicy: \"no-cache\" });\r\n const { data } = useQuery>(RESOURCE_CODES_QUERY);\r\n const { data: canned } = useQuery>(CANNED_QUERY);\r\n const { data: trucking } = useQuery>(TRUCKING_DATAS_QUERY);\r\n\r\n const materials = useSelector((state: RootState) => state.app.materialDatas);\r\n const truckingResources = useSelector((state: RootState) => state.app.schedule.locations?.[props.locationIndex]?.daysByUnix[props.unix]?.trucking?.truckingResources);\r\n const pavingResourcesRedux = useSelector((state: RootState) => state.app.schedule.locations?.[props.locationIndex]?.daysByUnix?.[props.unix]?.paving?.pavingResources)\r\n const days = useSelector((state: RootState) => state.app.schedule.locations?.[props.locationIndex]?.daysByUnix);\r\n const pavings = Object.values(days).filter(d => d.paving.pavingResources.length > 0);\r\n const jobNumberInformations = useSelector((state: RootState) => state.app.jobNumberInformations);\r\n const modal = useContext(ModalContext);\r\n const pavingResurcesLocation1ForPaving = useSelector((state: RootState) => state.app.schedule.locations?.[1].daysByUnix?.[props.unix]?.paving?.pavingResources);\r\n const pavingResurcesLocation2ForPaving = useSelector((state: RootState) => state.app.schedule.locations?.[2]?.daysByUnix?.[props.unix]?.paving?.pavingResources);\r\n const pavingResurcesLocation3ForPaving = useSelector((state: RootState) => state.app.schedule.locations?.[3]?.daysByUnix?.[props.unix]?.paving?.pavingResources);\r\n const pavingResurcesLocation4ForPaving = useSelector((state: RootState) => state.app.schedule.locations?.[4]?.daysByUnix?.[props.unix]?.paving?.pavingResources);\r\n const jobNumber = useSelector((state: RootState) => state.app.start.jobNumber);\r\n\r\n const client = useApolloClient();\r\n\r\n useEffect(() => {\r\n document.body.style.overflow = 'hidden'\r\n return () => {\r\n document.body.removeAttribute('style')\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n window.onpopstate = (e: any) => {\r\n props?.onClose?.()\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (data == null || data.resourceCodes == null) return;\r\n if (state.resources.length > 0) return;\r\n\r\n const masterCrewRecourceId = toMap(props.pavingResources, cr => cr?.resourceID ?? \"\");\r\n\r\n setState(draft => {\r\n\r\n const resourcesByResourceType = toMultiMap(data.resourceCodes.filter(r => r?.ResourceID !== \"ACP\"), r => r?.ResourceType ?? \"\");\r\n\r\n const resourcesByResourceCode = toMultiMap(data.resourceCodes.filter(r => r?.ResourceID !== \"ACP\"), r => r?.ResourceCode ?? \"\");\r\n\r\n Object.keys(resourcesByResourceType).forEach(key => {\r\n resourcesByResourceType[key].sort((a, b) => a?.ResourceDescription! < b?.ResourceDescription! ? -1 : 1)\r\n })\r\n let resourcesCodes: Maybe[] = [];\r\n resourcesCodes.push(...resourcesByResourceType[\"Labor\"], ...resourcesByResourceCode[\"Paving Equipment\"], ...resourcesByResourceCode[\"Asphalt Compactors\"]);\r\n\r\n draft.resources = resourcesCodes\r\n .filter(rc => rc?.ResourceID !== \"TRK\" && rc?.ResourceID !== \"PAV\")\r\n .map(rc => (\r\n {\r\n date: props.unix,\r\n jobNumber: props.jobNumber,\r\n locationIndex: props.locationIndex,\r\n mixSubmital: \"\",\r\n notes: \"\",\r\n shift: \"\",\r\n searchGSI_JobNumber: props.jobNumber,\r\n type: \"\",\r\n uID: null,\r\n resourceID: rc?.ResourceID,\r\n resourceType: rc?.ResourceType,\r\n resourceDescription: rc?.ResourceDescription,\r\n qty: masterCrewRecourceId[rc?.ResourceID!] != null ? masterCrewRecourceId[rc?.ResourceID!]?.qty : 0,\r\n tph: 0,\r\n rtsSupport: \"\",\r\n bookTruckVendor: \"\",\r\n grinder4ft: 0,\r\n grinder6ft: 0,\r\n grinder7ft: 0,\r\n grinder12ft: 0,\r\n extraWork: \"\",\r\n uts: \"\",\r\n mixDesignApproval: \"\",\r\n addedFromPaving: false,\r\n updated: true,\r\n loadOutTime: \"\",\r\n addedDate: \"\",\r\n material: \"\",\r\n oilTruck: \"\",\r\n plant: \"\",\r\n timeStamp: \"\",\r\n tonnage: 0\r\n } as MasterCrewSchedulePaving\r\n ));\r\n })\r\n\r\n }, [data, props.jobNumber, setState, state.resources.length, props.unix, props.locationIndex, props.pavingResources])\r\n\r\n useEffect(() => {\r\n if (state == null || state.resources == null) return;\r\n setState(draft => {\r\n draft.qtySum = state.resources\r\n .map(tr => tr?.qty)\r\n .reduce((previousValue, currentValue) => previousValue! as number + currentValue! as number, 0) as number;\r\n })\r\n }, [state, setState])\r\n\r\n useEffect(() => {\r\n if (props.pavingResources != null) {\r\n if (props.pavingResources == null || props.pavingResources.length === 0) { return }\r\n\r\n const isGrinderUsed = props.pavingResources[0]?.grinder12ft != null\r\n || props.pavingResources[0]?.grinder4ft != null\r\n || props.pavingResources[0]?.grinder6ft != null\r\n || props.pavingResources[0]?.grinder7ft != null;\r\n\r\n setPavingState(draft => {\r\n draft.mixSubmital = props.pavingResources[0]?.mixSubmital?.trim();\r\n draft.material = props.pavingResources[0]?.material;\r\n draft.plant = props.pavingResources[0]?.plant;\r\n draft.tonnage = props.pavingResources[0]?.tonnage;\r\n draft.oilTruck = props.pavingResources[0]?.oilTruck;\r\n draft.shift = props.pavingResources[0]?.shift\r\n draft.notes = props.pavingResources[0]?.notes\r\n draft.rtsSupport = props.pavingResources[0]?.rtsSupport == null ? \"\" : props.pavingResources[0]?.rtsSupport as string\r\n draft.tph = props.pavingResources[0]?.tph\r\n draft.grinder4ft = props.pavingResources[0]?.grinder4ft! as number\r\n draft.grinder6ft = props.pavingResources[0]?.grinder6ft! as number\r\n draft.grinder7ft = props.pavingResources[0]?.grinder7ft! as number\r\n draft.grinder12ft = props.pavingResources[0]?.grinder12ft! as number\r\n draft.bookTruckVendor = props.pavingResources[0]?.bookTruckVendor as string\r\n draft.extraWork = props.pavingResources[0]?.extraWork\r\n draft.uts = props.pavingResources[0]?.uts\r\n draft.mixDesignApproval = props.pavingResources[0]?.mixDesignApproval\r\n draft.grinderCheckBox = isGrinderUsed\r\n draft.rtsSupportCheckBox = (props.pavingResources[0]?.rtsSupport !== \"\" && props.pavingResources[0]?.rtsSupport != null) ? true : false\r\n draft.addedFromPaving = props.pavingResources[0]?.addedFromPaving\r\n draft.updated = true\r\n draft.timeStamp = props.pavingResources[0]?.timeStamp\r\n draft.loadOutTime = props.pavingResources[0]?.loadOutTime\r\n draft.addedDate = props.pavingResources[0]?.addedDate == null || props.pavingResources[0]?.addedDate === \"\" ? \"\" : props.pavingResources[0]?.addedDate\r\n });\r\n return;\r\n }\r\n }, [props.jobNumber, props.locationIndex, props.pavingResources, props.unix, setPavingState, setState])\r\n\r\n\r\n useEffect(() => {\r\n // if the checkbox that enables the inputs are unchecked and the inputs have values, it puts empty string or null\r\n if (pavingState.oilTruck === 'false' && (pavingState.bookTruckVendor == null || pavingState.bookTruckVendor === \"\")) {\r\n setPavingState(draft => {\r\n draft.bookTruckVendor = \"\";\r\n });\r\n }\r\n\r\n // if the user uncheck the oilTruck and in the bookTruckVendor has data filled, then we will empty the string\r\n if (pavingState.oilTruck === 'false' && pavingState.bookTruckVendor != null && pavingState.bookTruckVendor as string !== \"\") {\r\n setPavingState(draft => {\r\n draft.bookTruckVendor = \"\";\r\n });\r\n }\r\n\r\n if (pavingState.rtsSupportCheckBox === false) {\r\n setPavingState(draft => {\r\n draft.rtsSupport = \"\";\r\n })\r\n }\r\n }, [setPavingState, pavingState])\r\n\r\n const dispatch = useDispatch();\r\n\r\n const _plantData = trucking?.truckingDatas\r\n .filter(td => td?.type === \"Plant\")\r\n ?.sort((a, b) => a?.value! < b?.value! ? -1 : 1)\r\n\r\n const shift = [\r\n {\r\n key: 1,\r\n value: \"N\"\r\n },\r\n {\r\n key: 2,\r\n value: \"D\"\r\n }\r\n ];\r\n\r\n const specialShifts = [\r\n {\r\n key: 1,\r\n value: \"N 2\"\r\n },\r\n {\r\n key: 2,\r\n value: \"D 2\"\r\n }\r\n ]\r\n\r\n const checkForLockedDays = () => {\r\n let _lockedDays: Maybe[] = [];\r\n lockedDaysData?.superIntendentPavingCalendar.forEach((item: Maybe) => {\r\n if (item?.jobNumbersBlocked?.includes(jobNumber as number) || item?.status === true) _lockedDays.push(item.date)\r\n })\r\n return _lockedDays;\r\n }\r\n\r\n const onChangeQty = (index: number, e: any) => {\r\n let value: \"\" | number = parseInt(e.target.value);\r\n value = isNaN(value) ? \"\" : value;\r\n\r\n if (value < 0) { return }\r\n\r\n if (value.toString().length > 5) {\r\n return;\r\n }\r\n\r\n setState(draft => {\r\n draft.resources[index]!.qty = value as number;\r\n })\r\n }\r\n\r\n const onCheckboxChange = (index: number, checked: boolean) => {\r\n setState(draft => {\r\n if (checked === true) {\r\n draft.resources[index]!.qty = 1;\r\n }\r\n\r\n if (checked === false) {\r\n draft.resources[index]!.qty = 0;\r\n }\r\n })\r\n }\r\n\r\n const onShiftChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n let loadOutTimeValue: string = \"\";\r\n const shiftLocation1 = pavingResurcesLocation1ForPaving?.map(e => e?.shift)?.[0];\r\n const shiftLocation2 = pavingResurcesLocation2ForPaving?.map(e => e?.shift)?.[0];\r\n const shiftLocation3 = pavingResurcesLocation3ForPaving?.map(e => e?.shift)?.[0];\r\n const shiftLocation4 = pavingResurcesLocation4ForPaving?.map(e => e?.shift)?.[0];\r\n\r\n\r\n if ((_eValue === \"N\" || _eValue === \"N 2\") && pavingState.loadOutTime?.includes(\"AM\")) {\r\n loadOutTimeValue = pavingState.loadOutTime?.replace(\"AM\", \"PM\");\r\n\r\n if (pavingState.loadOutTime === \"00:00 AM\") {\r\n loadOutTimeValue = \"12:00 PM\";\r\n }\r\n if (pavingState.loadOutTime === \"00:30 AM\") {\r\n loadOutTimeValue = \"12:30 PM\";\r\n }\r\n }\r\n\r\n if ((_eValue === \"D\" || _eValue === \"D 2\") && pavingState.loadOutTime?.includes(\"PM\")) {\r\n loadOutTimeValue = pavingState.loadOutTime?.replace(\"PM\", \"AM\");\r\n\r\n if (pavingState.loadOutTime === \"12:00 PM\") {\r\n loadOutTimeValue = \"00:00 AM\";\r\n }\r\n if (pavingState.loadOutTime === \"12:30 PM\") {\r\n loadOutTimeValue = \"00:30 AM\";\r\n }\r\n }\r\n\r\n setPavingState(draft => {\r\n draft.shift = _eValue;\r\n })\r\n\r\n if (loadOutTimeValue !== \"\") {\r\n setPavingState(draft => {\r\n draft.loadOutTime = loadOutTimeValue;\r\n })\r\n }\r\n\r\n setSameShift(false);\r\n if ((props.locationIndex === 1 && _eValue === shiftLocation2) || (props.locationIndex === 2 && _eValue === shiftLocation1)) {\r\n setSameShift(true);\r\n modal?.openModal?.({\r\n element: \r\n })\r\n }\r\n\r\n if ((props.locationIndex === 3 && _eValue === shiftLocation4) || (props.locationIndex === 4 && _eValue === shiftLocation3)) {\r\n setSameShift(true);\r\n modal?.openModal?.({\r\n element: \r\n })\r\n }\r\n }\r\n\r\n const onNotesChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n\r\n if (_eValue.length > 250) {\r\n return;\r\n }\r\n\r\n setPavingState(draft => {\r\n draft.notes = _eValue;\r\n })\r\n }\r\n\r\n const onMixSubmitalChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n setPavingState(draft => {\r\n draft.mixSubmital = _eValue;\r\n })\r\n }\r\n\r\n const onMixDesignApprovalChange = (checked: boolean) => {\r\n const value = checked === true ? \"Y\" : \"N\";\r\n\r\n setPavingState(draft => {\r\n draft.mixDesignApproval = value;\r\n })\r\n }\r\n\r\n const onMaterialChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n setPavingState(draft => {\r\n draft.material = _eValue;\r\n })\r\n }\r\n\r\n const onPlantChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n setPavingState(draft => {\r\n draft.plant = _eValue;\r\n })\r\n }\r\n\r\n const onOilTruckChange = (checked: boolean) => {\r\n setPavingState(draft => {\r\n draft.oilTruck = checked.toString();\r\n })\r\n }\r\n\r\n const onRtsSupportCheckBoxChange = (checked: boolean) => {\r\n setPavingState(draft => {\r\n draft.rtsSupportCheckBox = checked;\r\n })\r\n }\r\n\r\n const onUtsCheckBoxChange = (checked: boolean) => {\r\n const value = checked === true ? \"Y\" : \"N\";\r\n\r\n setPavingState(draft => {\r\n draft.uts = value;\r\n })\r\n }\r\n\r\n const onGrinderCheckBoxChange = (checked: boolean) => {\r\n setPavingState(draft => {\r\n draft.grinderCheckBox = checked;\r\n if (checked === false) {\r\n draft.grinder4ft = null;\r\n draft.grinder6ft = null;\r\n draft.grinder7ft = null;\r\n draft.grinder12ft = null;\r\n }\r\n })\r\n }\r\n\r\n const onExtraWorkChange = (checked: boolean) => {\r\n const value = checked === true ? \"Y\" : \"N\";\r\n\r\n setPavingState(draft => {\r\n draft.extraWork = value;\r\n })\r\n }\r\n\r\n const onTonnageChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n\r\n let tonnage: number | \"\" = parseInt(_eValue);\r\n tonnage = isNaN(tonnage) ? \"\" : tonnage;\r\n if (tonnage < 0) { return }\r\n\r\n if (tonnage.toString().length > 5) {\r\n return;\r\n }\r\n\r\n setPavingState(draft => {\r\n draft.tonnage = tonnage as number;\r\n })\r\n }\r\n\r\n const onTPHChange = (e: React.ChangeEvent) => {\r\n let value: \"\" | number = parseInt(e.target.value);\r\n value = isNaN(value) ? \"\" : value;\r\n\r\n if (value < 0) { return }\r\n\r\n if (value.toString().length > 3) {\r\n return;\r\n }\r\n\r\n setPavingState(draft => {\r\n draft.tph = value as number;\r\n })\r\n }\r\n\r\n const onRtsSupportChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n setPavingState(draft => {\r\n draft.rtsSupport = _eValue;\r\n })\r\n }\r\n\r\n const onBookTruckVendorChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n setPavingState(draft => {\r\n draft.bookTruckVendor = _eValue;\r\n })\r\n }\r\n\r\n const onGrinder4ftChange = (e: React.ChangeEvent) => {\r\n let value: \"\" | number = parseInt(e.target.value);\r\n value = isNaN(value) ? \"\" : value;\r\n\r\n if (value < 0) { return }\r\n\r\n if (value.toString().length > 3) {\r\n return;\r\n }\r\n\r\n setPavingState(draft => {\r\n draft.grinder4ft = value as number;\r\n })\r\n }\r\n\r\n const onGrinder6ftChange = (e: React.ChangeEvent) => {\r\n let value: \"\" | number = parseInt(e.target.value);\r\n value = isNaN(value) ? \"\" : value;\r\n\r\n if (value < 0) { return }\r\n\r\n if (value.toString().length > 3) {\r\n return;\r\n }\r\n\r\n setPavingState(draft => {\r\n draft.grinder6ft = value as number;\r\n })\r\n }\r\n\r\n const onGrinder7ftChange = (e: React.ChangeEvent) => {\r\n let value: \"\" | number = parseInt(e.target.value);\r\n value = isNaN(value) ? \"\" : value;\r\n\r\n if (value < 0) { return }\r\n\r\n if (value.toString().length > 3) {\r\n return;\r\n }\r\n\r\n setPavingState(draft => {\r\n draft.grinder7ft = value as number;\r\n })\r\n }\r\n\r\n const onGrinder12ftChange = (e: React.ChangeEvent) => {\r\n let value: \"\" | number = parseInt(e.target.value);\r\n value = isNaN(value) ? \"\" : value;\r\n\r\n if (value < 0) { return }\r\n\r\n if (value.toString().length > 3) {\r\n return;\r\n }\r\n\r\n setPavingState(draft => {\r\n draft.grinder12ft = value as number;\r\n })\r\n }\r\n\r\n const onCannedChange = (e: React.ChangeEvent) => {\r\n const _eValue = e.target.value;\r\n const cannedResources = canned?.canned.filter(c => c?.cannedCode === _eValue)[0]?.cannedResources as Maybe[];\r\n const _cannedResources = toMap(cannedResources, c => c?.resourceID ?? \"\");\r\n\r\n if (cannedResources == null || _cannedResources == null) return;\r\n setState(draft => {\r\n draft.resources = state.resources.map(resource => ({\r\n ...resource,\r\n qty: _cannedResources[resource?.resourceID!]?.resourceQty\r\n }));\r\n })\r\n setState(draft => {\r\n draft.cannedCode = _eValue;\r\n })\r\n }\r\n\r\n //We need to make the function to wait for the refetch\r\n const clearTheDay = () => {\r\n dispatch(clearDay({ locationIndex: props.locationIndex, unix: props.unix }));\r\n props.onClose?.()\r\n }\r\n\r\n const onSubmit = async () => {\r\n setLoadingSave(true)\r\n const [error, response] = await to(\r\n client.query({\r\n query: SUPER_INTENDENT_PAVING_CALENDAR_QUERY, variables: {\r\n where: {\r\n startDate: props.unix,\r\n endDate: props.unix,\r\n }\r\n }\r\n })\r\n );\r\n\r\n if (error == null) {\r\n let _lockedDays: Maybe[] = [];\r\n response?.data.superIntendentPavingCalendar.forEach((item: Maybe) => {\r\n if (item?.jobNumbersBlocked?.includes(jobNumber as number) || item?.status === true) _lockedDays.push(item.date)\r\n })\r\n\r\n setTimeout(() => {\r\n if (_lockedDays.includes(props?.unix)) {\r\n modal?.openModal?.({\r\n element: {\r\n clearTheDay()\r\n }}\r\n />\r\n })\r\n }\r\n else {\r\n let pavingResourcesForAllocation = state.resources.filter(r => r?.qty as number > 0 && r?.qty != null);\r\n let pavingResourcesGrinderForAllocation = state.resources\r\n let pavingResources: MasterCrewSchedulePaving[] = [];\r\n const truckingData: MasterCrewSchedule[] = [];\r\n const pavingData: AddMasterCrewSchedulesPavingInput[] = [];\r\n if(pavingResourcesForAllocation.length === 0){\r\n pavingResourcesGrinderForAllocation.forEach(pr => {\r\n pavingResources.push({\r\n material: pavingState.material,\r\n mixSubmital: pavingState.mixSubmital,\r\n plant: pavingState.plant,\r\n tonnage: pavingState.tonnage,\r\n oilTruck: pavingState.oilTruck,\r\n shift: pavingState.shift,\r\n resourceID: pr?.resourceID,\r\n resourceDescription: pr?.resourceDescription,\r\n resourceType: pr?.resourceType,\r\n jobNumber: props.jobNumber,\r\n searchGSI_JobNumber: props.jobNumber,\r\n date: pr?.date,\r\n locationIndex: props.locationIndex,\r\n qty: pr?.qty,\r\n notes: pavingState.notes,\r\n bookTruckVendor: pavingState?.bookTruckVendor as string,\r\n rtsSupport: pavingState?.rtsSupport == null ? \"\" : pavingState?.rtsSupport,\r\n tph: pavingState?.tph,\r\n grinder4ft: pavingState.grinder4ft as number,\r\n grinder6ft: pavingState.grinder6ft as number,\r\n grinder7ft: pavingState.grinder7ft as number,\r\n grinder12ft: pavingState.grinder12ft as number,\r\n mixDesignApproval: pavingState.mixDesignApproval,\r\n extraWork: pavingState.extraWork,\r\n uts: pavingState.uts,\r\n addedFromPaving: false,\r\n updated: true,\r\n timeStamp: moment().format(),\r\n loadOutTime: pavingState.loadOutTime as string,\r\n addedDate: (pavingState.addedDate != null && pavingState.addedDate !== \"\") ? pavingState.addedDate : moment().utc().format(\"YYYY-MM-DD\")\r\n })\r\n })\r\n }\r\n \r\n pavingResourcesForAllocation.forEach(pr => {\r\n pavingResources.push({\r\n material: pavingState.material,\r\n mixSubmital: pavingState.mixSubmital,\r\n plant: pavingState.plant,\r\n tonnage: pavingState.tonnage,\r\n oilTruck: pavingState.oilTruck,\r\n shift: pavingState.shift,\r\n resourceID: pr?.resourceID,\r\n resourceDescription: pr?.resourceDescription,\r\n resourceType: pr?.resourceType,\r\n jobNumber: props.jobNumber,\r\n searchGSI_JobNumber: props.jobNumber,\r\n date: pr?.date,\r\n locationIndex: props.locationIndex,\r\n qty: pr?.qty,\r\n notes: pavingState.notes,\r\n bookTruckVendor: pavingState?.bookTruckVendor as string,\r\n rtsSupport: pavingState?.rtsSupport == null ? \"\" : pavingState?.rtsSupport,\r\n tph: pavingState?.tph,\r\n grinder4ft: pavingState.grinder4ft as number,\r\n grinder6ft: pavingState.grinder6ft as number,\r\n grinder7ft: pavingState.grinder7ft as number,\r\n grinder12ft: pavingState.grinder12ft as number,\r\n mixDesignApproval: pavingState.mixDesignApproval,\r\n extraWork: pavingState.extraWork,\r\n uts: pavingState.uts,\r\n addedFromPaving: false,\r\n updated: true,\r\n timeStamp: moment().format(),\r\n loadOutTime: pavingState.loadOutTime as string,\r\n addedDate: (pavingState.addedDate != null && pavingState.addedDate !== \"\") ? pavingState.addedDate : moment().utc().format(\"YYYY-MM-DD\")\r\n })\r\n })\r\n /*\r\n if (!verifyPavResourcesOnTrucking()) {\r\n showTruckingModal();\r\n }\r\n else if (checkIfTrkHasQty0()) {\r\n showMaterialChanged();\r\n }\r\n else {\r\n */\r\n props.onApply(1);\r\n let _trkResources = truckingResources.filter(lr => lr?.operationType === \"paving\");\r\n let trkResourcesQty = _trkResources\r\n ?.map(tr => tr?.qty)\r\n ?.reduce((previousValue, currentValue) => previousValue! as number + currentValue! as number, 0) as number;\r\n\r\n const jobInfo: JobInfoFullInput[] = [];\r\n\r\n selectedDates?.forEach(date => {\r\n jobInfo.push(\r\n {\r\n jobNumber_Date: parseInt(`${jobNumberInformations?.jobNumber}${(moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000}`) / 1000,\r\n searchGSI_JobNumber: jobNumberInformations?.jobNumber,\r\n tableauGSI_Tableau: \"tableau\",\r\n resourceName: \"Paving Crew\",\r\n resourceQTY: 1,\r\n resourceID: \"PAV\",\r\n resourceType: \"Labor\",\r\n date: (moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000,\r\n additionalResourcesComments: \" \",\r\n areaManager: jobNumberInformations?.areaManager == null ? \" \" : jobNumberInformations?.areaManager,\r\n description: \" \",\r\n foreman: \" \",\r\n jobName: jobNumberInformations?.jobName == null ? \" \" : jobNumberInformations?.jobName,\r\n locationIndex: props.locationIndex,\r\n pmpe: jobNumberInformations?.projectManager == null ? \" \" : jobNumberInformations?.projectManager as string,\r\n superIntendent: jobNumberInformations?.superIntendentName == null ? \" \" : jobNumberInformations?.superIntendentName as string,\r\n pavingForeman: \" \",\r\n pavingSuperIntendent: \" \"\r\n },\r\n {\r\n jobNumber_Date: parseInt(`${jobNumberInformations?.jobNumber}${(moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000}`) / 1000,\r\n searchGSI_JobNumber: jobNumberInformations?.jobNumber,\r\n tableauGSI_Tableau: \"tableau\",\r\n resourceName: \"Trucking\",\r\n resourceQTY: trkResourcesQty,\r\n resourceID: \"TRK\",\r\n resourceType: \"Equipment\",\r\n date: (moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000,\r\n additionalResourcesComments: \" \",\r\n areaManager: jobNumberInformations?.areaManager == null ? \" \" : jobNumberInformations?.areaManager,\r\n description: \" \",\r\n foreman: \" \",\r\n jobName: jobNumberInformations?.jobName == null ? \" \" : jobNumberInformations?.jobName,\r\n locationIndex: props.locationIndex,\r\n pmpe: jobNumberInformations?.projectManager == null ? \" \" : jobNumberInformations?.projectManager as string,\r\n superIntendent: jobNumberInformations?.superIntendentName == null ? \" \" : jobNumberInformations?.superIntendentName as string,\r\n pavingForeman: \" \",\r\n pavingSuperIntendent: \" \",\r\n },\r\n {\r\n jobNumber_Date: parseInt(`${jobNumberInformations?.jobNumber}${(moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000}`) / 1000,\r\n searchGSI_JobNumber: jobNumberInformations?.jobNumber,\r\n tableauGSI_Tableau: \"tableau\",\r\n resourceName: \"AC Paving Crew\",\r\n resourceQTY: 1,\r\n resourceID: \"ACP\",\r\n resourceType: \"Labor\",\r\n date: (moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000,\r\n additionalResourcesComments: \" \",\r\n areaManager: jobNumberInformations?.areaManager == null ? \" \" : jobNumberInformations?.areaManager,\r\n description: \" \",\r\n foreman: \" \",\r\n jobName: jobNumberInformations?.jobName == null ? \" \" : jobNumberInformations?.jobName,\r\n locationIndex: props.locationIndex,\r\n pmpe: jobNumberInformations?.projectManager == null ? \" \" : jobNumberInformations?.projectManager as string,\r\n superIntendent: jobNumberInformations?.superIntendentName == null ? \" \" : jobNumberInformations?.superIntendentName as string,\r\n pavingForeman: \" \",\r\n pavingSuperIntendent: \" \"\r\n },\r\n );\r\n\r\n _trkResources.forEach(tr => {\r\n truckingData.push({\r\n date: (moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000,\r\n locationIndex: props.locationIndex,\r\n broker: tr?.broker as string,\r\n jobNumber: jobNumberInformations?.jobNumber as number,\r\n tableauGSI_Tableau: \"tableau\",\r\n searchGSI_JobNumber: jobNumberInformations?.jobNumber as number,\r\n loadSite: tr?.loadSite as string,\r\n material: tr?.material as string,\r\n notes: \" \",\r\n operationType: tr?.operationType as string,\r\n qty: tr?.qty as number,\r\n shift: pavingState.shift as string,\r\n type: tr?.type as string,\r\n addedFromPaving: tr?.addedFromPaving != null ? tr?.addedFromPaving : true,\r\n updated: tr?.updated != null ? tr?.updated : true,\r\n timeStamp: tr?.timeStamp != null ? tr?.timeStamp : moment().format(),\r\n })\r\n })\r\n pavingResources.forEach(pr => {\r\n pavingData.push({\r\n ...pr,\r\n date: (moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000\r\n })\r\n })\r\n });\r\n\r\n selectedDates.forEach(sd => {\r\n dispatch(addPavingFromPavingManagement({ jobInfoResources: jobInfo, locationIndex: props.locationIndex, jobInfoToUpdate: null, unix: (moment.utc(sd, \"YYYY-MM-DD\").unix()) * 1000 }))\r\n dispatch(addPavingResourcesToDay({ locationIndex: props.locationIndex, unix: (moment.utc(sd, \"YYYY-MM-DD\").unix()) * 1000, pavingResources: pavingData.filter(p => p.date === (moment.utc(sd, \"YYYY-MM-DD\").unix()) * 1000) }));\r\n dispatch(addTruckingResourcesToDayFromPavingManagement({ locationIndex: props.locationIndex, unix: (moment.utc(sd, \"YYYY-MM-DD\").unix()) * 1000, truckingResources: truckingData.filter(p => p?.date === (moment.utc(sd, \"YYYY-MM-DD\").unix()) * 1000) }));\r\n });\r\n\r\n // let _trResource = truckingResources.filter(lr => lr?.operationType === \"paving\");\r\n // let _truckingResourceQty = _trResource\r\n // ?.map(tr => tr?.qty)\r\n // ?.reduce((previousValue, currentValue) => previousValue! as number + currentValue! as number, 0) as number;\r\n\r\n // const _truckingData: MasterCrewSchedule[] = [];\r\n // const _pavingData: AddMasterCrewSchedulesPavingInput[] = [];\r\n // const _jobInfo: JobInfoFullInput[] = [];\r\n\r\n // datesOutOfGeneratedDays.forEach(async date => {\r\n // _jobInfo.push(\r\n // {\r\n // jobNumber_Date: parseInt(`${jobNumberInformations?.jobNumber}${(moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000}`) / 1000,\r\n // searchGSI_JobNumber: jobNumberInformations?.jobNumber,\r\n // tableauGSI_Tableau: \"tableau\",\r\n // resourceName: \"Paving Crew\",\r\n // resourceQTY: 1,\r\n // resourceID: \"PAV\",\r\n // resourceType: \"Labor\",\r\n // date: (moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000,\r\n // additionalResourcesComments: \" \",\r\n // areaManager: jobNumberInformations?.areaManager == null ? \" \" : jobNumberInformations?.areaManager,\r\n // description: \" \",\r\n // foreman: \" \",\r\n // jobName: jobNumberInformations?.jobName == null ? \" \" : jobNumberInformations?.jobName,\r\n // locationIndex: props.locationIndex,\r\n // pmpe: jobNumberInformations?.projectManager == null ? \" \" : jobNumberInformations?.projectManager as string,\r\n // superIntendent: jobNumberInformations?.superIntendentName == null ? \" \" : jobNumberInformations?.superIntendentName as string,\r\n // pavingForeman: \" \",\r\n // pavingSuperIntendent: \" \"\r\n // },\r\n // {\r\n // jobNumber_Date: parseInt(`${jobNumberInformations?.jobNumber}${(moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000}`) / 1000,\r\n // searchGSI_JobNumber: jobNumberInformations?.jobNumber,\r\n // tableauGSI_Tableau: \"tableau\",\r\n // resourceName: \"AC Paving Crew\",\r\n // resourceQTY: 1,\r\n // resourceID: \"ACP\",\r\n // resourceType: \"Labor\",\r\n // date: (moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000,\r\n // additionalResourcesComments: \" \",\r\n // areaManager: jobNumberInformations?.areaManager == null ? \" \" : jobNumberInformations?.areaManager,\r\n // description: \" \",\r\n // foreman: \" \",\r\n // jobName: jobNumberInformations?.jobName == null ? \" \" : jobNumberInformations?.jobName,\r\n // locationIndex: props.locationIndex,\r\n // pmpe: jobNumberInformations?.projectManager == null ? \" \" : jobNumberInformations?.projectManager as string,\r\n // superIntendent: jobNumberInformations?.superIntendentName == null ? \" \" : jobNumberInformations?.superIntendentName as string,\r\n // pavingForeman: \" \",\r\n // pavingSuperIntendent: \" \"\r\n // },\r\n // {\r\n // jobNumber_Date: parseInt(`${jobNumberInformations?.jobNumber}${(moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000}`) / 1000,\r\n // searchGSI_JobNumber: jobNumberInformations?.jobNumber,\r\n // tableauGSI_Tableau: \"tableau\",\r\n // resourceName: \"Trucking\",\r\n // resourceQTY: _truckingResourceQty,\r\n // resourceID: \"TRK\",\r\n // resourceType: \"Equipment\",\r\n // date: (moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000,\r\n // additionalResourcesComments: \" \",\r\n // areaManager: jobNumberInformations?.areaManager == null ? \" \" : jobNumberInformations?.areaManager,\r\n // description: \" \",\r\n // foreman: \" \",\r\n // jobName: jobNumberInformations?.jobName == null ? \" \" : jobNumberInformations?.jobName,\r\n // locationIndex: props.locationIndex,\r\n // pmpe: jobNumberInformations?.projectManager == null ? \" \" : jobNumberInformations?.projectManager as string,\r\n // superIntendent: jobNumberInformations?.superIntendentName == null ? \" \" : jobNumberInformations?.superIntendentName as string,\r\n // pavingForeman: \" \",\r\n // pavingSuperIntendent: \" \"\r\n // },\r\n // );\r\n\r\n // _trResource.forEach(tr => {\r\n // _truckingData.push({\r\n // date: (moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000,\r\n // locationIndex: props.locationIndex,\r\n // broker: tr?.broker as string,\r\n // jobNumber: jobNumberInformations?.jobNumber as number,\r\n // tableauGSI_Tableau: \"tableau\",\r\n // searchGSI_JobNumber: jobNumberInformations?.jobNumber as number,\r\n // loadSite: tr?.loadSite as string,\r\n // material: tr?.material as string,\r\n // notes: \" \",\r\n // operationType: tr?.operationType as string,\r\n // qty: tr?.qty as number,\r\n // shift: pavingState.shift as string,\r\n // type: tr?.type as string,\r\n // addedFromPaving: tr?.addedFromPaving != null ? tr?.addedFromPaving : true,\r\n // updated: tr?.updated != null ? tr?.updated : true,\r\n // timeStamp: tr?.timeStamp != null ? tr?.timeStamp : moment().format()\r\n // })\r\n // })\r\n\r\n // pavingResources.forEach(pr => {\r\n // _pavingData.push({\r\n // ...pr,\r\n // date: (moment.utc(date, \"YYYY-MM-DD\").unix()) * 1000\r\n // })\r\n // })\r\n // })\r\n props.onClose?.()\r\n \r\n }\r\n setLoadingSave(false)\r\n }, 3000)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n async function checkForLocked() {\r\n refetchLockedDays();\r\n if (checkForLockedDays()?.includes(props.unix)) {\r\n setState(draft => {\r\n draft.buttonDisabled = true;\r\n })\r\n }\r\n else {\r\n setState(draft => {\r\n draft.buttonDisabled = false;\r\n })\r\n }\r\n }\r\n\r\n let pavingResourcesForAllocation = state.resources.filter(r => r?.qty as number > 0 && r?.qty != null);\r\n \r\n const { grinder4ft, grinder6ft, grinder7ft, grinder12ft } = pavingState;\r\n if(grinder4ft !== null || grinder6ft !== null || grinder7ft !== null || grinder12ft !== null){\r\n setState(draft => {\r\n draft.buttonDisabled = false;\r\n })\r\n } else if ((pavingState.material == null ||\r\n pavingState.material === \"\" ||\r\n pavingState.mixSubmital == null ||\r\n pavingState.mixSubmital === \"\" ||\r\n pavingState.plant == null ||\r\n pavingState.plant === \"\" ||\r\n pavingState.tonnage == null ||\r\n pavingState.tonnage.toString() === \"\" ||\r\n pavingResourcesForAllocation.length === 0 ||\r\n pavingState.shift == null ||\r\n pavingState.shift === \"\" ||\r\n ((pavingState.bookTruckVendor == null || pavingState.bookTruckVendor === \"\") && pavingState.oilTruck === \"true\")) \r\n ) {\r\n setState(draft => {\r\n draft.buttonDisabled = true;\r\n })\r\n }\r\n else {\r\n checkForLocked();\r\n }\r\n }, [pavingState, state, setState, onSubmit])\r\n\r\n\r\n const onQtyChange = (value: string) => {\r\n let qty: number | \"\" = parseInt(value);\r\n qty = isNaN(qty) ? \"\" : qty;\r\n\r\n dispatch(addTruckingQTYFromPaving({ locationIndex: props.locationIndex, unix: props.unix, qty: qty as number }));\r\n }\r\n\r\n const onTimeChange = (event: React.ChangeEvent) => {\r\n const value = event.target.value as string;\r\n const shiftLocation1 = pavingResurcesLocation1ForPaving?.map(e => e?.shift)?.[0];\r\n const shiftLocation2 = pavingResurcesLocation2ForPaving?.map(e => e?.shift)?.[0];\r\n const shiftLocation3 = pavingResurcesLocation3ForPaving?.map(e => e?.shift)?.[0];\r\n const shiftLocation4 = pavingResurcesLocation4ForPaving?.map(e => e?.shift)?.[0];\r\n let shift: string = \"\";\r\n\r\n setPavingState(draft => {\r\n draft.loadOutTime = value;\r\n })\r\n\r\n if (value.includes(\"AM\")) {\r\n shift = (props.locationIndex === 1 || props.locationIndex === 2) ? \"D\" : \"D 2\";\r\n setPavingState(draft => {\r\n draft.shift = shift;\r\n })\r\n }\r\n\r\n if (value.includes(\"PM\")) {\r\n shift = (props.locationIndex === 1 || props.locationIndex === 2) ? \"N\" : \"N 2\";\r\n setPavingState(draft => {\r\n draft.shift = shift;\r\n })\r\n }\r\n\r\n setSameShift(false);\r\n\r\n if ((props.locationIndex === 1 && shift === shiftLocation2) || (props.locationIndex === 2 && shift === shiftLocation1)) {\r\n setSameShift(true);\r\n modal?.openModal?.({\r\n element: \r\n })\r\n }\r\n\r\n if ((props.locationIndex === 3 && shift === shiftLocation4) || (props.locationIndex === 4 && shift === shiftLocation3)) {\r\n setSameShift(true);\r\n modal?.openModal?.({\r\n element: \r\n })\r\n }\r\n }\r\n\r\n const setShowTruckingAssigment = () => {\r\n modal?.openModal?.({\r\n element: { onQtyChange(value as string) }}\r\n shift={pavingState.shift as string}\r\n material={pavingState.material as string}\r\n loadSite={pavingState.plant as string}\r\n // canAddPavingResources={truckingResources.filter(lr => lr?.operationType === \"paving\").length > 0 ? false : true}\r\n canAddPavingResources={true}\r\n fromPavingManagement={true}\r\n />\r\n })\r\n }\r\n\r\n const verifyPavResourcesOnTrucking = () => {\r\n let hasTrkWithPav = false;\r\n truckingResources.forEach(tr => {\r\n if (tr?.operationType === \"paving\") {\r\n hasTrkWithPav = true;\r\n }\r\n });\r\n return hasTrkWithPav;\r\n }\r\n\r\n const checkIfTrkHasQty0 = () => {\r\n let hasTrkWithQty0 = false;\r\n truckingResources.forEach(tr => {\r\n if (tr?.operationType === \"paving\" && (tr?.qty === 0 && tr?.material === \"No Material\" && tr?.loadSite === \"None – Job Prep\") && (pavingState.material !== \"No Material\" || pavingState?.plant !== \"None – Job Prep\")) {\r\n hasTrkWithQty0 = true;\r\n }\r\n });\r\n return hasTrkWithQty0;\r\n }\r\n\r\n const showTruckingModal = () => {\r\n modal?.openModal({\r\n element: setShowTruckingAssigment()}\r\n />\r\n });\r\n }\r\n\r\n const showMaterialChanged = () => {\r\n modal?.openModal({\r\n element: setShowTruckingAssigment()}\r\n />\r\n });\r\n }\r\n\r\n const showCancelAssignmentModal = () => {\r\n\r\n const isGrinderUsed = props.pavingResources[0]?.grinder12ft != null\r\n || props.pavingResources[0]?.grinder4ft != null\r\n || props.pavingResources[0]?.grinder6ft != null\r\n || props.pavingResources[0]?.grinder7ft != null;\r\n\r\n if (pavingState.mixSubmital !== props.pavingResources[0]?.mixSubmital ||\r\n pavingState.material !== props.pavingResources[0]?.material ||\r\n pavingState.plant !== props.pavingResources[0]?.plant ||\r\n pavingState.tonnage !== props.pavingResources[0]?.tonnage ||\r\n pavingState.oilTruck !== props.pavingResources[0]?.oilTruck ||\r\n pavingState.shift !== props.pavingResources[0]?.shift ||\r\n pavingState.notes !== props.pavingResources[0]?.notes ||\r\n pavingState.rtsSupport !== props.pavingResources[0]?.rtsSupport ||\r\n pavingState.tph !== props.pavingResources[0]?.tph ||\r\n pavingState.grinder4ft !== props.pavingResources[0]?.grinder4ft! as number ||\r\n pavingState.grinder6ft !== props.pavingResources[0]?.grinder6ft! as number ||\r\n pavingState.grinder7ft !== props.pavingResources[0]?.grinder7ft! as number ||\r\n pavingState.grinder12ft !== props.pavingResources[0]?.grinder12ft! as number ||\r\n pavingState.bookTruckVendor !== props.pavingResources[0]?.bookTruckVendor ||\r\n pavingState.extraWork !== props.pavingResources[0]?.extraWork ||\r\n pavingState.uts !== props.pavingResources[0]?.uts ||\r\n pavingState.mixDesignApproval !== props.pavingResources[0]?.mixDesignApproval ||\r\n pavingState.grinderCheckBox !== isGrinderUsed) {\r\n if (pavingResourcesRedux.length === 0 && props.indexPosition != null) {\r\n dispatch(RemoveJob({\r\n locationIndex: props.locationIndex,\r\n unix: props.unix,\r\n indexPos: props?.indexPosition as number,\r\n resourceType: \"labor\",\r\n resourceID: \"PAV\"\r\n }));\r\n }\r\n if (verifyPavResourcesOnTrucking() === false) {\r\n modal?.openModal?.({\r\n element:\r\n \r\n })\r\n }\r\n else {\r\n if (pavingResourcesRedux != null && pavingResourcesRedux.length === 0) {\r\n let message = \"You have to assign a Paving Crew because you already added a Trucking resource with operation type paving. Do you still want to close?\";\r\n let title = \"Paving Crew needed\";\r\n if (checkForLockedDays().includes(props?.unix)) {\r\n message = \"This day was locked while you were working. No more changes can be made to it.\";\r\n title = \"Locked day\";\r\n }\r\n modal?.openModal?.({\r\n element: (\r\n {\r\n clearTheDay()\r\n }}\r\n />\r\n ),\r\n });\r\n }\r\n else {\r\n modal?.openModal?.({\r\n element:\r\n \r\n })\r\n }\r\n }\r\n } else {\r\n props.onClose?.();\r\n }\r\n }\r\n\r\n const getDates = useCallback(() => {\r\n return toMap(pavings ?? [], pavings => pavings?.date!, () => true);\r\n }, [pavings])\r\n\r\n const getDatesWithMoreThanThreeJN = () => {\r\n const groupedDates = toMultiMap(datesInPavingCalendar?.datesInPavingCalendar ?? [], date => date?.date!);\r\n const dates = Object.keys(groupedDates)\r\n .map(date => groupedDates[date].map(d => d?.jobNumber))\r\n .map((gd, i) => gd.filter((item, index) => gd.indexOf(item) === index).length >= 3\r\n ? Object.keys(groupedDates)[i]\r\n : null\r\n )\r\n return dates.filter(d => d !== null)\r\n }\r\n\r\n const onDatesSelected = (dates: string[]) => {\r\n\r\n // dates.forEach(d => {\r\n // if (!generatedDays.includes((moment.utc(d, \"YYYY-MM-DD\").unix()) * 1000)) {\r\n // //dates.splice(dates.indexOf(d));\r\n // let _dates: string[] = datesOutOfGeneratedDays;\r\n // if (!_dates.includes(d) && !lockedDays.includes((moment.utc(d, \"YYYY-MM-DD\").unix()) * 1000)) {\r\n // _dates.push(d);\r\n // }\r\n // setDatesOutOfGeneratedDays(_dates);\r\n // }\r\n // })\r\n\r\n if (dates.length === 0) {\r\n setSelectedDates([moment(props?.unix).utc().format(\"YYYY.MM.DD\")]);\r\n }\r\n else {\r\n setSelectedDates(dates);\r\n }\r\n }\r\n\r\n const _generatedDays: number[] = [];\r\n generatedDays.forEach(ld => {\r\n if (!checkForLockedDays().includes(ld!)) {\r\n _generatedDays.push(ld)\r\n }\r\n })\r\n\r\n useEffect(() => {\r\n refetchLockedDays();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [state, setState, pavingState, setPavingState, onChangeQty, onCheckboxChange, onShiftChange, onNotesChange, onMixSubmitalChange\r\n , onMixDesignApprovalChange, onMaterialChange, onPlantChange, onOilTruckChange, onRtsSupportCheckBoxChange, onUtsCheckBoxChange,\r\n onGrinderCheckBoxChange, onExtraWorkChange, onTonnageChange, onTPHChange, onRtsSupportChange, onBookTruckVendorChange,\r\n onGrinder4ftChange, onGrinder6ftChange, onGrinder7ftChange, onGrinder12ftChange, onCannedChange, onQtyChange, onTimeChange])\r\n\r\n return (\r\n <>\r\n {(lockedDaysLoading || loadingSave) && }\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
\r\n {\r\n !checkForLockedDays().includes(((moment(props?.unix).utc().unix()) * 1000)) ?\r\n onDatesSelected(dates)}\r\n dates={getDates()}\r\n redDates={getDatesWithMoreThanThreeJN()}\r\n generatedDays={_generatedDays}\r\n lockedDays={checkForLockedDays()}\r\n />\r\n : moment(props?.unix).utc().format(\"DD-MMM-YYYY\")\r\n }\r\n {(checkForLockedDays().includes(props.unix)) ? : null}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Paving for: {props.jobNumber} {(checkForLockedDays().includes(props.unix)) ? : null}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n { onMixSubmitalChange(e) }}\r\n value={pavingState.mixSubmital as string}\r\n type=\"text\"\r\n placeholder=\"Mix Submital\"\r\n style={{ border: (pavingState.mixSubmital == null || pavingState.mixSubmital === \"\") && pavingState.grinderCheckBox === false ? \"3px solid rgba(255,0,0, 0.75)\" : \"none\" }}\r\n />\r\n
\r\n { onMixDesignApprovalChange(e.target.checked) }} />\r\n
Approved
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n onTonnageChange(e)}\r\n placeholder=\"Tonnage\"\r\n style={{ border: (pavingState.tonnage == null || pavingState.tonnage.toString() === \"\") && pavingState.grinderCheckBox === false ? \"3px solid rgba(255,0,0, 0.75)\" : \"none\" }}\r\n />\r\n onTPHChange(e)}\r\n placeholder=\"TPH\" />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { onOilTruckChange(e.target.checked) }} />\r\n
Oil Truck:
\r\n
\r\n onBookTruckVendorChange(e)}\r\n placeholder=\"Oil Truck Name\"\r\n style={{ border: pavingState.oilTruck === \"true\" && (pavingState.bookTruckVendor == null || pavingState.bookTruckVendor.trim() === \"\") ? \"3px solid rgba(255,0,0, 0.75)\" : \"none\" }}\r\n />\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n { onRtsSupportCheckBoxChange(e.target.checked) }} />\r\n
RTS Support:
\r\n
\r\n onRtsSupportChange(e)} />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { onGrinderCheckBoxChange(e.target.checked) }} />\r\n
Grinder?
\r\n
\r\n
\r\n
\r\n
\r\n
4ft:
\r\n onGrinder4ftChange(e)} />\r\n
\r\n
\r\n
6ft:
\r\n onGrinder6ftChange(e)} />\r\n
\r\n
\r\n
7ft:
\r\n onGrinder7ftChange(e)} />\r\n
\r\n
\r\n
12ft:
\r\n onGrinder12ftChange(e)}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { onExtraWorkChange(e.target.checked) }} />\r\n
ExtraWork
\r\n
\r\n
\r\n { onUtsCheckBoxChange(e.target.checked) }} />\r\n
UTS
\r\n
\r\n
\r\n
\r\n
\r\n onNotesChange(e)}\r\n placeholder=\"Notes\"\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
CREW COMPOSITION
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Select
\r\n
Resource Name
\r\n
Qty
\r\n
\r\n {state.resources?.map((rc: Maybe, index: number) => (\r\n
\r\n
\r\n { onCheckboxChange(index, e.target.checked) }}\r\n checked={state.resources?.[index]?.qty as number > 0}\r\n />\r\n
\r\n
\r\n {rc?.resourceDescription as string}\r\n
\r\n
\r\n { onChangeQty(index, e) }}\r\n value={state.resources?.[index]?.qty?.toString() ?? \"\"}\r\n type=\"text\"\r\n placeholder={state.resources?.[index]?.qty?.toString() ?? \"0\"}\r\n />\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n onSubmit()}\r\n title={checkForLockedDays().includes(props.unix) ? \"The day is locked\" : \"\"}\r\n className=\"Button Add_Resources\"\r\n disabled={(state.buttonDisabled || (checkForLockedDays().includes(props.unix))) || hasSameShift === true}\r\n > Assign \r\n \r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default memo(PavingManagement)","import React, { FC, useRef, useEffect, useState, memo, useContext, CSSProperties } from 'react';\r\nimport { useImmer } from 'use-immer';\r\nimport { Maybe, ResourceCode, CustomCrew, JobInfo, Query, SuperIntendentPavingCalendar } from '../graphql/schema-types';\r\n// @ts-ignore\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { JobChange, JobQTY, RemoveJob, removeNonPavingTruckingResourcesToDay, removePavingResourcesToDay, removePavingTruckingResourcesToDay, removeTruckingResourcesToDay } from '../redux/appSlice';\r\nimport { ResourceAssignment } from \"../components/Crew/ResourceAssignment/ResourceAssignment\";\r\nimport { RootState } from '../redux/store';\r\nimport { ModalContext } from './Modal/ModalContext/ModalContext';\r\nimport { TruckingManagement } from './Trucking/TruckingManagement/TruckingManagement';\r\nimport PavingManagement from './Paving/PavingManagement';\r\nimport { GeneralWarningModal } from './Warnings & errors/GeneralWarningModal/GeneralWarningModal';\r\nimport { useQuery } from '@apollo/react-hooks';\r\nimport { SUPER_INTENDENT_PAVING_CALENDAR_QUERY } from '../graphql/queries/SUPER_INTENDENT_PAVING_CALENDAR_QUERY';\r\ninterface Props {\r\n resourceCodes: Maybe[];\r\n crews?: Maybe[];\r\n resourceIdIndexes?: { [resourceId: string]: number };\r\n indexPos: number | null;\r\n locationIndex: number;\r\n unix: number;\r\n resourceType: \"labor\" | \"equipment\";\r\n onReloadLockedDays(): void;\r\n}\r\n\r\ninterface Option {\r\n value: string;\r\n rc: Maybe;\r\n crew: Maybe;\r\n qty: \"\" | number;\r\n}\r\n\r\nconst getInitialState = (): Option => {\r\n return ({\r\n value: \"\",\r\n rc: null,\r\n crew: null,\r\n qty: \"\"\r\n })\r\n}\r\n\r\nconst labelStyle: CSSProperties = {\r\n overflow: \"hidden\"\r\n , flex: 1\r\n , whiteSpace: \"nowrap\"\r\n , margin: \"3px 5px\"\r\n , textOverflow: \"ellipsis\"\r\n , fontSize: \"14px\"\r\n}\r\n\r\nconst JobSelect: FC }> = props => {\r\n const input = useRef(null);\r\n const { indexPos, locationIndex, unix, resourceType, jobInfo } = props\r\n const [state, setState] = useImmer
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\tmoment(\r\n\t\t\t\t\t\t\t\t\t\t\t\tparseInt(props.calendarDay?.date)\r\n\t\t\t\t\t\t\t\t\t\t\t).utc().format(\"D\")\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t\tonSubmit();\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\t\t\t\t\t\tallowToModify === true && isGeneral === true ? false : true\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\ttitle={\r\n\t\t\t\t\t\t\t\t\t\t\tstate.isScheduleLocked === true\r\n\t\t\t\t\t\t\t\t\t\t\t\t? \"Click on the button to unlock the day\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: \"Click on the button to lock the day\"\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tref={refStatusDay}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{state.isScheduleLocked === true\r\n\t\t\t\t\t\t\t\t\t\t\t? \"SCHEDULE LOCKED\"\r\n\t\t\t\t\t\t\t\t\t\t\t: \"LOCK SCHEDULE\"}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t{props.items?.map((item, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t{props.items && props.items?.length > 0 ? (\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\tTonnage: {totalTonnage}\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n","import React, { FC, CSSProperties, memo } from 'react';\r\nimport { useDragLayer, XYCoord, } from \"react-dnd\";\r\n\r\nconst layerStyles: CSSProperties = {\r\n position: \"fixed\",\r\n pointerEvents: \"none\",\r\n zIndex: 100,\r\n left: 0,\r\n top: 0,\r\n width: \"100%\",\r\n height: \"100%\"\r\n};\r\n\r\nfunction getItemStyles(\r\n initialOffset: XYCoord | null,\r\n currentOffset: XYCoord | null,\r\n offset: XYCoord | null\r\n) {\r\n if (!initialOffset || !currentOffset || !offset) {\r\n return {\r\n display: \"none\"\r\n };\r\n }\r\n\r\n let { x, y } = {\r\n x: offset.x + 5,\r\n y: offset.y + 5\r\n };\r\n\r\n const transform = `translate(${x}px, ${y}px)`;\r\n return {\r\n transform,\r\n WebkitTransform: transform\r\n };\r\n}\r\n\r\nconst Preview: FC = () => {\r\n const {\r\n item,\r\n initialOffset,\r\n currentOffset,\r\n clientOffset\r\n } = useDragLayer(monitor => ({\r\n item: monitor.getItem(),\r\n itemType: monitor.getItemType(),\r\n initialOffset: monitor.getInitialSourceClientOffset(),\r\n currentOffset: monitor.getSourceClientOffset(),\r\n isDragging: monitor.isDragging(),\r\n clientOffset: monitor.getClientOffset()\r\n }));\r\n\r\n if (item?.noPreview === true) return null;\r\n\r\n return (\r\n
\r\n
{item && `${item.jobNumber}`}
\r\n
\r\n );\r\n}\r\n\r\nexport default memo(Preview);","import React, { FC, useEffect } from \"react\";\r\nimport { useImmer } from \"use-immer\";\r\nimport { useQuery } from \"@apollo/react-hooks\";\r\nimport { toMap } from \"../../utils/toMap\";\r\nimport { DayFromCalendar } from \"./DayFromCalendar/DayFromCalendar\";\r\nimport Preview from \"./Preview\";\r\nimport { Query, SuperIntendentPavingCalendar, Maybe } from \"../../graphql/schema-types\";\r\nimport { SUPER_INTENDENT_PAVING_CALENDAR_QUERY } from \"../../graphql/queries/SUPER_INTENDENT_PAVING_CALENDAR_QUERY\";\r\nimport { FullScreenLoadingIndicator } from \"../Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\nimport { FullScreenErrorIndicator } from \"../Modal/ErrorIndicator/FullScreenErrorIndicator\";\r\nimport \"./Calendar.css\";\r\nimport { RootState } from \"../../redux/store\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { addBlockedJobNumbersAndForemansToPavingModule, addDayStatusToPavingModule } from \"../../redux/appSlice\";\r\n\r\ninterface ICalendarProps {\r\n generatedDays: string[];\r\n}\r\n\r\ninterface CalendarState {\r\n days: Maybe[];\r\n}\r\n\r\nexport const Calendar: FC = (props) => {\r\n\r\n const [calendarData, setCalendarData] = useImmer({\r\n days: []\r\n });\r\n\r\n const { data, loading, error } = useQuery>(SUPER_INTENDENT_PAVING_CALENDAR_QUERY, {\r\n variables: { where: { startDate: parseInt(props.generatedDays[0]), endDate: parseInt(props.generatedDays[props.generatedDays.length - 1]) } },\r\n skip: props.generatedDays.length === 0\r\n });\r\n\r\n const dispatch = useDispatch();\r\n\r\n const items = useSelector((state: RootState) => state.app?.pavingModule);\r\n\r\n useEffect(() => {\r\n if (props.generatedDays.length === 0 || data?.superIntendentPavingCalendar == null || calendarData.days.length > 0) return;\r\n\r\n const dataByDate = toMap(data.superIntendentPavingCalendar, d => d?.date ?? \"\");\r\n\r\n setCalendarData(draft => {\r\n const res = props.generatedDays\r\n .map(gd => (\r\n {\r\n date: gd,\r\n pk: dataByDate[parseInt(gd)] != null ? dataByDate[parseInt(gd)]?.pk : \"calendar\",\r\n status: dataByDate[parseInt(gd)] != null ? dataByDate[parseInt(gd)]?.status : false,\r\n } as SuperIntendentPavingCalendar\r\n ));\r\n draft.days = res;\r\n });\r\n\r\n }, [calendarData.days.length, data, props.generatedDays, setCalendarData]);\r\n\r\n useEffect(() => {\r\n if (data == null || data.superIntendentPavingCalendar == null) return;\r\n dispatch(addBlockedJobNumbersAndForemansToPavingModule({ pavingCalendarItems: data.superIntendentPavingCalendar }));\r\n dispatch(addDayStatusToPavingModule({ superIntendentPavingCalendarItems: data.superIntendentPavingCalendar }))\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [data])\r\n\r\n return (\r\n <>\r\n {loading && }\r\n {error != null && }\r\n
\r\n \r\n
\r\n
\r\n
\r\n
SUN
\r\n
MON
\r\n
TUE
\r\n
WED
\r\n
THU
\r\n
FRI
\r\n
SAT
\r\n
\r\n
\r\n {\r\n calendarData.days.map((day, index) => (\r\n \r\n ))\r\n }\r\n
\r\n
\r\n \r\n )\r\n}","import React, { FC } from \"react\";\r\nimport \"./SuperIndendentPavingModuleHeader.css\"\r\ninterface ISuperIndendentPavingModuleHeaderProps {\r\n\r\n}\r\n\r\nexport const SuperIndendentPavingModuleHeader: FC = () => {\r\n\r\n return (\r\n
\r\n \"graniterock\"\r\n
\r\n )\r\n}","import React, { FC } from \"react\";\r\nimport { Button } from \"../../Form/Button\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\nimport \"./SleepMode.css\";\r\n\r\ninterface ISleepModeProps {\r\n onConfirm?(): void;\r\n onClose?(): void;\r\n onCancel?(): void;\r\n onConfirmButtonText?: string;\r\n}\r\n\r\nexport const SleepMode: FC = (props) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
Sleeping
\r\n
\r\n props.onClose?.()} />\r\n
\r\n
\r\n
\r\n
\r\n The session timed out. Press OK to resume.\r\n
\r\n
\r\n
\r\n { props.onClose?.() }}\r\n title=\"OK\"\r\n className=\"Button\"\r\n />\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { FC, useContext, useEffect, useState } from \"react\";\r\nimport \"./SuperIntendentPavingModule.css\";\r\nimport { Calendar } from \"./Calendar\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { addDataToPavingModule, addIncompleteItemsToPavingModule } from \"../../redux/appSlice\";\r\nimport { Query } from \"../../graphql/schema-types\";\r\nimport { useQuery } from \"@apollo/react-hooks\";\r\nimport { SUPER_INTENDENT_PAVING_CALENDAR_DATAS_QUERY } from \"../../graphql/queries/SUPER_INTENDENT_PAVING_CALENDAR_DATAS_QUERY\";\r\nimport { RootState } from \"../../redux/store\";\r\nimport { FullScreenLoadingIndicator } from \"../Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\nimport { SuperIndendentPavingModuleHeader } from \"./SuperIndendentPavingModuleHeader/SuperIndendentPavingModuleHeader\";\r\nimport { SleepMode } from \"../Warnings & errors/SleepMode/SleepMode\";\r\nimport { ModalContext } from \"../Modal/ModalContext/ModalContext\";\r\n\r\ninterface ISuperIntendentPavingModuleProps { }\r\n\r\nexport interface PavingModuleDayState {\r\n unix: number;\r\n}\r\n\r\nexport const SuperIntendentPavingModule: FC = (props) => {\r\n const dispatch = useDispatch();\r\n\r\n const [call, setCall] = useState(false);\r\n const [queryCounter, setQueryCounter] = useState(0);\r\n const [sleepMode, setSleepMode] = useState(false);\r\n\r\n const modal = useContext(ModalContext);\r\n\r\n const items = useSelector((state: RootState) => state.app?.pavingModule);\r\n\r\n const pavingModuleUser = useSelector((state: RootState) => state.app?.pavingModuleUser);\r\n\r\n const remoteEquipmentList = useSelector((state: RootState) => state.app?.remoteEquipmentList);\r\n\r\n const daysFromState: string[] = Object.keys(items);\r\n\r\n const { data, loading, refetch } = useQuery>(SUPER_INTENDENT_PAVING_CALENDAR_DATAS_QUERY, {\r\n variables: { where: { startDate: parseInt(daysFromState[0]), endDate: parseInt(daysFromState[daysFromState.length - 1]), pavingSuperName: pavingModuleUser.name } },\r\n skip: Object.keys(items).length === 0,\r\n fetchPolicy: \"no-cache\",\r\n errorPolicy: \"all\",\r\n });\r\n\r\n useEffect(() => {\r\n if (loading || data == null) { return }\r\n dispatch(addDataToPavingModule({ superIntendentDatas: data.superIntendentPavingCalendarDatas.correctItems }))\r\n dispatch(addIncompleteItemsToPavingModule({ incompleteItems: data.superIntendentPavingCalendarDatas.incompleteItems }))\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [data?.superIntendentPavingCalendarDatas, loading]);\r\n\r\n const MINUTE_MS = 5000; //5 seconds\r\n\r\n useEffect(() => {\r\n const interval = setInterval(() => {\r\n console.log('Verify if new items were added in the last 5 seconds');\r\n if (sleepMode === false)\r\n setCall(true);\r\n }, MINUTE_MS);\r\n\r\n return () => {\r\n clearInterval(interval);\r\n } // This represents the unmount function, in which you need to clear your interval to prevent memory leaks.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [call]);\r\n\r\n useEffect(() => {\r\n if (call === false) return;\r\n if (queryCounter === 120) // after 10 minutes\r\n {\r\n setSleepMode(true);\r\n setCall(false);\r\n modal?.openModal({\r\n element:\r\n { setSleepMode(false); setQueryCounter(0); }}\r\n onCancel={() => { setSleepMode(false); setQueryCounter(0); }} />\r\n })\r\n return;\r\n }\r\n else {\r\n refetch();\r\n setCall(false);\r\n setQueryCounter(queryCounter + 1);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [call]);\r\n\r\n return (\r\n <>\r\n {(loading) && }\r\n {remoteEquipmentList.length > 0 ?
\r\n \r\n
\r\n \r\n
\r\n
\r\n :}\r\n \r\n )\r\n}","import React, { FC } from \"react\";\r\n\r\nexport const DisabledUser: FC = props => {\r\n\r\n return (\r\n
\r\n\r\n
\r\n
\r\n Call your superintendent, your account has been disabled.\r\n
\r\n
\r\n
\r\n\r\n );\r\n}","import React from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport \"./PavingPlanner.css\";\r\nimport { SelectAmPm } from \"../SelectAmPm/SelectAmPm\";\r\nimport { SideBar } from \"../SuperIntendentPavingModule/SideBar/SideBar\";\r\nimport { InitPavingModule } from \"../InitPavingModule/InitPavingModule\";\r\n\r\n// this is the main page for the Paving Planner(AM) module\r\nexport const PavingPlanner = () => {\r\n const history = useHistory();\r\n\r\n const onCalendar = () => {\r\n history.push({\r\n pathname: '/calendar',\r\n state: {\r\n from: \"/calendar\"\r\n }\r\n })\r\n }\r\n\r\n const onFullDayPreview = () => {\r\n history.push({\r\n pathname: '/daypreview',\r\n state: {\r\n from: \"/daypreview\"\r\n }\r\n })\r\n }\r\n\r\n const onHistoryPage = () => {\r\n history.push({\r\n pathname: '/history',\r\n state: {\r\n from: \"/history\"\r\n }\r\n })\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \"graniterock\"\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}","import React, { FC } from \"react\";\r\nimport \"./SheetHeader.css\";\r\n\r\ninterface ISheetHeaderProps {\r\n\r\n}\r\n\r\nexport const SheetHeader: FC = () => {\r\n return (\r\n
\r\n
Job#
\r\n
Job Name
\r\n
PM/PE
\r\n
D/N
\r\n
Super
\r\n
Foreman
\r\n
Qty
\r\n
TPH
\r\n
MAT'L
\r\n
Prod Type
\r\n
Plant
\r\n
Load out time
\r\n
Mix Dsgn
\r\n
RTS Spprt
\r\n
Boot Trk Vndr
\r\n
TRK CO.
\r\n
Type of Trucks
\r\n
#Trks
\r\n
UTS
\r\n
EW
\r\n
Crew Make OP
\r\n
Crew Make Lab
\r\n
\r\n
Grinder
\r\n
\r\n
4
\r\n
6
\r\n
7
\r\n
12
\r\n
\r\n
\r\n
\r\n )\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const PAVING_SUPERS_QUERY = gql`\r\n query pavingSupers {\r\n pavingSupers {\r\n name\r\n email\r\n disabled\r\n\t }\r\n }\r\n`;","import \"../../../Paving/PavingManagement.css\";\r\nimport { FC, useEffect, memo } from \"react\";\r\nimport React from \"react\";\r\nimport { Maybe, Query, Resource, ResourceCode, SuperIntendentPavingCalendarDatas } from \"../../../../graphql/schema-types\";\r\nimport { useImmer } from \"use-immer\";\r\nimport { CheckBox } from \"../../../Form/CheckBox\";\r\nimport { TextInput } from \"../../../TextInput\";\r\nimport { CloseButton } from \"../../../Form/CloseButton\";\r\nimport { toMultiMap } from \"../../../../utils/toMultiMap\";\r\nimport { useQuery } from \"@apollo/react-hooks\";\r\nimport { RESOURCE_CODES_QUERY } from \"../../../../graphql/queries/RESOURCE_CODES_QUERY\";\r\nimport { toMap } from \"../../../../utils/toMap\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { saveChangesToItemFromFullDayPreview } from \"../../../../redux/appSlice\";\r\nimport { RootState } from \"../../../../redux/store\";\r\ninterface ICrewCompositionProps {\r\n item?: Maybe;\r\n itemState: any;\r\n updateJobInfoTable: boolean,\r\n updateMasterCrewSchedulePavingTable: boolean,\r\n updateMasterCrewScheduleTable: boolean,\r\n type: string;\r\n resources: Maybe[];\r\n otherResources: Maybe[];\r\n onClose?(): void;\r\n}\r\n\r\ntype State = {\r\n resources: Maybe[];\r\n qtySum: number;\r\n};\r\n\r\nconst CrewComposition: FC = props => {\r\n\r\n const [state, setState] = useImmer({\r\n resources: [],\r\n qtySum: 0\r\n });\r\n\r\n const { data } = useQuery>(RESOURCE_CODES_QUERY);\r\n\r\n const fullDayPreviewItem = useSelector((state: RootState) => state.app.fullDayPreview).filter(f => f.date === props?.item?.date)[0];\r\n\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n if (state.resources.length > 0) return;\r\n if (data == null || data.resourceCodes == null) return;\r\n\r\n const masterCrewRecourceId = toMap(props?.resources, cr => cr?.resourceID ?? \"\");\r\n\r\n setState(draft => {\r\n\r\n const resourcesByResourceType = toMultiMap(data.resourceCodes.filter(r => r?.ResourceID !== \"ACP\"), r => r?.ResourceType ?? \"\");\r\n\r\n const resourcesByResourceCode = toMultiMap(data.resourceCodes.filter(r => r?.ResourceID !== \"ACP\"), r => r?.ResourceCode ?? \"\");\r\n\r\n Object.keys(resourcesByResourceType).forEach(key => {\r\n resourcesByResourceType[key].sort((a, b) => a?.ResourceDescription! < b?.ResourceDescription! ? -1 : 1)\r\n })\r\n let resourcesCodes: Maybe[] = [];\r\n resourcesCodes.push(...resourcesByResourceType[\"Labor\"], ...resourcesByResourceCode[\"Paving Equipment\"], ...resourcesByResourceCode[\"Asphalt Compactors\"]);\r\n\r\n draft.resources = resourcesCodes\r\n .filter(rc => rc?.ResourceID !== \"TRK\" && rc?.ResourceID !== \"PAV\" && rc?.ResourceDescription?.includes(props.type))\r\n .map(rc => (\r\n {\r\n resourceID: rc?.ResourceID,\r\n resourceType: rc?.ResourceType,\r\n resourceDescription: rc?.ResourceDescription,\r\n resourceQTY: masterCrewRecourceId[rc?.ResourceID!] != null ? masterCrewRecourceId[rc?.ResourceID!]?.resourceQTY : 0,\r\n } as Resource\r\n ));\r\n })\r\n\r\n }, [data, setState, state.resources.length, props, props.resources])\r\n\r\n useEffect(() => {\r\n if (state == null || state.resources == null) return;\r\n setState(draft => {\r\n draft.qtySum = state.resources\r\n .map(tr => tr?.resourceQTY)\r\n .reduce((previousValue, currentValue) => previousValue! as number + currentValue! as number, 0) as number;\r\n })\r\n }, [state, setState])\r\n\r\n const onCheckboxChange = (index: number, checked: boolean) => {\r\n setState(draft => {\r\n if (checked === true) {\r\n draft.resources[index]!.resourceQTY = 1;\r\n draft.qtySum = state.resources\r\n .map(tr => tr?.resourceQTY)\r\n .reduce((previousValue, currentValue) => previousValue! as number + currentValue! as number, 0) as number;\r\n }\r\n\r\n if (checked === false) {\r\n draft.resources[index]!.resourceQTY = 0;\r\n draft.qtySum = state.resources\r\n .map(tr => tr?.resourceQTY)\r\n .reduce((previousValue, currentValue) => previousValue! as number - currentValue! as number, 0) as number;\r\n }\r\n })\r\n }\r\n\r\n const onChangeQty = (index: number, e: any) => {\r\n let value: \"\" | number = parseInt(e.target.value);\r\n value = isNaN(value) ? \"\" : value;\r\n\r\n if (value < 0) { return }\r\n\r\n if (value.toString().length > 5) {\r\n return;\r\n }\r\n\r\n setState(draft => {\r\n draft.resources[index]!.resourceQTY = value as number;\r\n })\r\n }\r\n\r\n const onSubmit = () => {\r\n if (props.type === \"Labor\") {\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n broker: props.item?.broker as string,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n nrOfTrucks: props.item?.nrOfTrucks,\r\n superIntendent: props.item?.superIntendent as string,\r\n tonnage: props.item?.tonnage,\r\n typeOfTrucks: props.item?.typeOfTrucks as string,\r\n shift: props.item?.shift as string,\r\n updateJobInfoTable: props?.updateJobInfoTable,\r\n updateMasterCrewSchedulePavingTable: true,\r\n updateMasterCrewScheduleTable: props.updateMasterCrewScheduleTable,\r\n material: props.item?.material as string,\r\n plant: props.item?.plant as string,\r\n loadOutTime: props.item?.loadOutTime as string,\r\n areaManager: props.item?.areaManager as string,\r\n jobMap: props.item?.jobMap as string,\r\n jobName: props.item?.jobName as string,\r\n pavingForeman: props.item?.pavingForeman as string,\r\n pavingSuper: props.item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: props.item?.superIntendent as string,\r\n pmpe: props.item?.pmpe as string,\r\n crewMakeLab: state.qtySum as number,\r\n crewMakeOp: fullDayPreviewItem?.crewMakeOp != null ? fullDayPreviewItem?.crewMakeOp : props.item?.crewMakeOp as number,\r\n resourcesLab: state.resources as [Resource],\r\n resourcesOp: (fullDayPreviewItem?.resourcesOp != null && fullDayPreviewItem?.resourcesOp?.[0].resourceType != null) ? fullDayPreviewItem?.resourcesOp : props.otherResources as [Resource],\r\n tph: props.item?.tph as number,\r\n uts: props.item?.uts as string,\r\n extrawork: props.item?.extraWork as string,\r\n oilTruk: props.item?.oilTruk as string,\r\n bookTruckVendor: props.item?.bookTruckVendor as string,\r\n grinder4ft: props.item?.grinder4ft as number,\r\n grinder6ft: props.item?.grinder6ft as number,\r\n grinder7ft: props.item?.grinder7ft as number,\r\n grinder12ft: props.item?.grinder12ft as number,\r\n mixDesignApproval: props.item?.mixDesignApproval as string,\r\n rtsSupport: props.item?.rtsSupport as string,\r\n mixSubmital: props.item?.mixSubmital as string,\r\n }));\r\n }\r\n if (props.type === \"Operator\") {\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n broker: props.item?.broker as string,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n nrOfTrucks: props.item?.nrOfTrucks,\r\n superIntendent: props.item?.superIntendent as string,\r\n tonnage: props.item?.tonnage,\r\n typeOfTrucks: props.item?.typeOfTrucks as string,\r\n shift: props.item?.shift as string,\r\n updateJobInfoTable: props?.updateJobInfoTable,\r\n updateMasterCrewSchedulePavingTable: true,\r\n updateMasterCrewScheduleTable: props.updateMasterCrewScheduleTable,\r\n material: props.item?.material as string,\r\n plant: props.item?.plant as string,\r\n loadOutTime: props.item?.loadOutTime as string,\r\n areaManager: props.item?.areaManager as string,\r\n jobMap: props.item?.jobMap as string,\r\n jobName: props.item?.jobName as string,\r\n pavingForeman: props.item?.pavingForeman as string,\r\n pavingSuper: props.item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: props.item?.superIntendent as string,\r\n pmpe: props.item?.pmpe as string,\r\n crewMakeLab: fullDayPreviewItem?.crewMakeLab != null ? fullDayPreviewItem?.crewMakeLab : props.item?.crewMakeLab as number,\r\n crewMakeOp: state.qtySum as number,\r\n resourcesLab: (fullDayPreviewItem?.resourcesLab != null && fullDayPreviewItem?.resourcesLab?.[0].resourceType != null) ? fullDayPreviewItem?.resourcesLab : props.otherResources as [Resource],\r\n resourcesOp: state.resources as [Resource],\r\n tph: props.item?.tph as number,\r\n uts: props.item?.uts as string,\r\n extrawork: props.item?.extraWork as string,\r\n oilTruk: props.item?.oilTruk as string,\r\n bookTruckVendor: props.item?.bookTruckVendor as string,\r\n grinder4ft: props.item?.grinder4ft as number,\r\n grinder6ft: props.item?.grinder6ft as number,\r\n grinder7ft: props.item?.grinder7ft as number,\r\n grinder12ft: props.item?.grinder12ft as number,\r\n mixDesignApproval: props.item?.mixDesignApproval as string,\r\n rtsSupport: props.item?.rtsSupport as string,\r\n mixSubmital: props.item?.mixSubmital as string,\r\n }));\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
CREW COMPOSITION
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Select
\r\n
Resource Name
\r\n
Qty
\r\n
\r\n {state.resources?.map((rc: Maybe, index: number) => (\r\n
\r\n
\r\n { onCheckboxChange(index, e.target.checked) }}\r\n checked={state.resources?.[index]?.resourceQTY as number > 0}\r\n />\r\n
\r\n
\r\n {rc?.resourceDescription as string}\r\n
\r\n
\r\n { onChangeQty(index, e) }}\r\n value={rc?.resourceQTY?.toString() ?? \"\"}\r\n type=\"text\"\r\n placeholder={state.resources?.[index]?.resourceQTY?.toString() ?? \"0\"}\r\n />\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n onSubmit()}\r\n className=\"Button Add_Resources\"\r\n >\r\n Apply\r\n \r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default memo(CrewComposition)","export interface IState {\r\n nrOfTrucks: number,\r\n typeOfTrucks: string,\r\n tonnage: number,\r\n pavingSuper: string,\r\n pavingForeman: string,\r\n truckCo: string,\r\n loadOutTime: string,\r\n tph: number,\r\n material: string,\r\n plant: string,\r\n mixSubmital: string,\r\n mixDesignApproval: string,\r\n rtsSupport: string,\r\n bookTruckVendor: string,\r\n uts: string,\r\n extrawork: string,\r\n oilTruk: string,\r\n grinder4ft: number,\r\n grinder6ft: number,\r\n grinder7ft: number,\r\n grinder12ft: number,\r\n updateJobInfoTable: boolean,\r\n updateMasterCrewSchedulePavingTable: boolean,\r\n updateMasterCrewScheduleTable: boolean,\r\n}\r\n\r\n\r\nexport const booleanType = [\r\n {\r\n value: \"Y\",\r\n key: \"Yes\"\r\n },\r\n\r\n {\r\n value: \"N\",\r\n key: \"No\"\r\n }\r\n]","import { useQuery } from \"@apollo/react-hooks\";\r\nimport moment from \"moment\";\r\nimport React, { FC, useContext, useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { LOAD_OUT_TIME_QUERY } from \"../../../../graphql/queries/LOAD_OUT_TIME_QUERY\";\r\nimport { PAVING_SUPERS_QUERY } from \"../../../../graphql/queries/PAVING_SUPERS_QUERY\";\r\nimport { Maybe, Query, Resource, SuperIntendentPavingCalendarDatas, TruckingData } from \"../../../../graphql/schema-types\";\r\nimport { saveChangesToItemFromFullDayPreview } from \"../../../../redux/appSlice\";\r\nimport { RootState } from \"../../../../redux/store\";\r\nimport { FullScreenErrorIndicator } from \"../../../Modal/ErrorIndicator/FullScreenErrorIndicator\";\r\nimport { FullScreenLoadingIndicator } from \"../../../Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\nimport { ModalContext } from \"../../../Modal/ModalContext/ModalContext\";\r\nimport { TextInput } from \"../../../TextInput\";\r\nimport CrewComposition from \"../CrewComposition/CrewComposition\";\r\nimport { booleanType, IState } from \"./Interfaces\";\r\nimport \"./SheetRow.css\"\r\n\r\ninterface ISheetRow {\r\n item?: Maybe;\r\n // if the email it's included in the paving supers users list\r\n isSupersSelectDisabled: boolean;\r\n truckingDatas?: Maybe[] | undefined;\r\n pavingForemans?: string[] | undefined\r\n isEditable?: boolean\r\n}\r\n\r\n\r\nexport const SheetRow: FC = (props) => {\r\n const { item } = props;\r\n\r\n const [state, setState] = useState({\r\n nrOfTrucks: 0,\r\n pavingSuper: \"\",\r\n pavingForeman: \"\",\r\n tonnage: 0,\r\n typeOfTrucks: \"\",\r\n truckCo: \"\",\r\n loadOutTime: \"\",\r\n tph: 0,\r\n material: \"\",\r\n plant: \"\",\r\n mixSubmital: \"\",\r\n mixDesignApproval: \"\",\r\n rtsSupport: \"\",\r\n bookTruckVendor: \"\",\r\n uts: \"\",\r\n extrawork: \"\",\r\n oilTruk: \"\",\r\n grinder12ft: 0,\r\n grinder4ft: 0,\r\n grinder6ft: 0,\r\n grinder7ft: 0,\r\n updateJobInfoTable: false,\r\n updateMasterCrewSchedulePavingTable: false,\r\n updateMasterCrewScheduleTable: false,\r\n });\r\n\r\n const dispatch = useDispatch();\r\n\r\n const { loading, error, data } = useQuery>(PAVING_SUPERS_QUERY);\r\n\r\n const { data: loadOutTimeData } = useQuery>(LOAD_OUT_TIME_QUERY, { fetchPolicy: \"no-cache\" });\r\n\r\n const modal = useContext(ModalContext);\r\n\r\n const materials = useSelector((state: RootState) => state.app.materialDatas);\r\n const isDayBlocked = useSelector((state: RootState) => state.app.pavingModule[props.item?.date]?.isDayBlocked);\r\n const lockedJobs = useSelector((state: RootState) => state.app.pavingModule[props.item?.date]?.jobNumbersBlocked);\r\n const fullDayPreviewItem = useSelector((state: RootState) => state.app.fullDayPreview).filter(f => f.date === props?.item?.date)[0];\r\n\r\n const currentDay = moment().utc().format(\"MM-DD-YY\");\r\n\r\n useEffect(() => {\r\n\r\n setState({\r\n ...state,\r\n nrOfTrucks: props.item?.nrOfTrucks as number,\r\n tonnage: props.item?.tonnage as number,\r\n typeOfTrucks: props.item?.typeOfTrucks as string,\r\n pavingSuper: props.item?.pavingSuperIntendent as string,\r\n pavingForeman: props.item?.pavingForeman as string,\r\n truckCo: props.item?.broker as string,\r\n loadOutTime: props.item?.loadOutTime as string,\r\n bookTruckVendor: props.item?.bookTruckVendor as string,\r\n grinder12ft: props.item?.grinder12ft as number,\r\n grinder4ft: props.item?.grinder4ft == null ? 0 : props.item.grinder4ft,\r\n grinder6ft: props.item?.grinder6ft as number,\r\n grinder7ft: props.item?.grinder7ft as number,\r\n material: props.item?.material as string,\r\n mixDesignApproval: props.item?.mixDesignApproval as string,\r\n mixSubmital: props.item?.mixSubmital as string,\r\n plant: props.item?.plant as string,\r\n rtsSupport: props.item?.rtsSupport as string,\r\n tph: props.item?.tph as number,\r\n uts: props.item?.uts as string,\r\n extrawork: props.item?.extraWork as string,\r\n oilTruk: props.item?.oilTruk as string,\r\n });\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.item])\r\n\r\n const brokersData = props?.truckingDatas\r\n ?.filter(td => td?.type === \"Broker\")\r\n ?.sort((a, b) => a?.value! < b?.value! ? -1 : 1);\r\n\r\n\r\n if (brokersData !== null && brokersData !== undefined) {\r\n brokersData.push({\r\n key: \"Other\",\r\n type: \"Broker\",\r\n value: \"Other (log in notes)\"\r\n })\r\n }\r\n\r\n const _trukData = props?.truckingDatas\r\n ?.filter(td => td?.type === \"TruckType\")\r\n ?.sort((a, b) => a?.value! < b?.value! ? -1 : 1);\r\n\r\n if (_trukData !== null && _trukData !== undefined) {\r\n _trukData.push({\r\n key: \"Other\",\r\n type: \"TruckType\",\r\n value: \"Other (log in notes)\"\r\n })\r\n }\r\n\r\n const plantData = props?.truckingDatas\r\n ?.filter(td => td?.type === \"Plant\")\r\n ?.sort((a, b) => a?.value! < b?.value! ? -1 : 1);\r\n\r\n const _pavingSupers = data?.pavingSupers?.sort((a, b) => a?.name! < b?.name! ? -1 : 1);\r\n\r\n const onPavingSuperChange = (e: React.ChangeEvent) => {\r\n if (e.target.value !== state.pavingSuper) {\r\n setState({ ...state, pavingSuper: e.target.value, updateJobInfoTable: true });\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: state.truckCo,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n superIntendent: e.target.value,\r\n shift: props.item?.shift as string,\r\n updateJobInfoTable: true,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: item?.pavingForeman as string,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem?.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem?.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n }));\r\n }\r\n }\r\n\r\n const onPavingForemanChange = (e: React.ChangeEvent) => {\r\n if (e.target.value !== state.pavingForeman) {\r\n setState({ ...state, pavingForeman: e.target.value, updateJobInfoTable: true });\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: state.truckCo,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n superIntendent: state.pavingSuper,\r\n shift: props.item?.shift as string,\r\n updateJobInfoTable: true,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: e.target.value,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem?.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem?.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n }));\r\n }\r\n }\r\n\r\n const onTonnageChange = (e: React.ChangeEvent) => {\r\n let tonnage: Maybe = parseInt(e.target.value);\r\n tonnage = isNaN(tonnage) ? null : tonnage;\r\n if (tonnage != null && (tonnage < 0 || tonnage > 49999)) { return }\r\n\r\n if (tonnage !== state.tonnage) {\r\n setState({ ...state, tonnage: tonnage as number, updateMasterCrewSchedulePavingTable: true })\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: state.truckCo,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n superIntendent: state.pavingSuper,\r\n tonnage: tonnage,\r\n shift: props.item?.shift as string,\r\n updateMasterCrewSchedulePavingTable: true,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: item?.pavingForeman as string,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n }));\r\n }\r\n }\r\n\r\n const onNrOfTrucksChange = (e: React.ChangeEvent) => {\r\n let nrOfTrucks: Maybe = parseInt(e.target.value);\r\n nrOfTrucks = isNaN(nrOfTrucks) ? null : nrOfTrucks;\r\n if (nrOfTrucks != null && (nrOfTrucks < 0 || nrOfTrucks > 999)) { return }\r\n\r\n if (nrOfTrucks !== state.nrOfTrucks) {\r\n setState({ ...state, nrOfTrucks: nrOfTrucks as number, updateMasterCrewScheduleTable: true })\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: state.truckCo,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n nrOfTrucks: nrOfTrucks as number,\r\n superIntendent: state.pavingSuper,\r\n shift: props.item?.shift as string,\r\n updateMasterCrewScheduleTable: true,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: item?.pavingForeman as string,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n }));\r\n }\r\n }\r\n\r\n const onTypeOfTrucksChange = (e: React.ChangeEvent) => {\r\n if (e.target.value !== state.typeOfTrucks) {\r\n setState({ ...state, typeOfTrucks: e.target.value, updateMasterCrewScheduleTable: true });\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: state.truckCo,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n superIntendent: state.pavingSuper,\r\n typeOfTrucks: e.target.value,\r\n shift: props.item?.shift as string,\r\n updateMasterCrewScheduleTable: true,\r\n loadOutTime: state?.loadOutTime as string,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: item?.pavingForeman as string,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n }));\r\n }\r\n }\r\n\r\n const onTruckCoChange = (e: React.ChangeEvent) => {\r\n if (e.target.value !== state.truckCo) {\r\n setState({ ...state, truckCo: e.target.value, updateMasterCrewScheduleTable: true });\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: e.target.value,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n superIntendent: state.pavingSuper,\r\n shift: props.item?.shift as string,\r\n updateMasterCrewScheduleTable: true,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: item?.pavingForeman as string,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n }));\r\n }\r\n }\r\n\r\n const onLoadOutTimeChange = (e: React.ChangeEvent) => {\r\n if (e.target.value !== state.loadOutTime) {\r\n setState({ ...state, loadOutTime: e.target.value, updateMasterCrewSchedulePavingTable: true });\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: state.truckCo,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n superIntendent: state.pavingSuper,\r\n shift: props.item?.shift as string,\r\n updateMasterCrewSchedulePavingTable: true,\r\n loadOutTime: e.target.value as string,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: item?.pavingForeman as string,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n }));\r\n }\r\n }\r\n\r\n const onTPHChange = (e: React.ChangeEvent) => {\r\n let tph: Maybe = parseInt(e.target.value);\r\n tph = isNaN(tph) ? null : tph;\r\n if (tph != null && (tph < 0 || tph > 999)) { return }\r\n\r\n if (tph !== state.tph) {\r\n setState({ ...state, tph: tph as number, updateMasterCrewSchedulePavingTable: true });\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: state.truckCo,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n superIntendent: state.pavingSuper,\r\n shift: props.item?.shift as string,\r\n updateMasterCrewSchedulePavingTable: true,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: item?.pavingForeman as string,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n tph: tph as number,\r\n }));\r\n }\r\n }\r\n\r\n const onMixDesignApproval = (e: React.ChangeEvent) => {\r\n if (e.target.value !== state.mixDesignApproval) {\r\n setState({ ...state, mixDesignApproval: e.target.value, updateMasterCrewSchedulePavingTable: true });\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: state.truckCo,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n superIntendent: state.pavingSuper,\r\n shift: props.item?.shift as string,\r\n updateMasterCrewSchedulePavingTable: true,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: item?.pavingForeman as string,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n mixDesignApproval: e.target.value\r\n }));\r\n }\r\n }\r\n\r\n const onRtsSupport = (e: React.ChangeEvent) => {\r\n if (e.target.value !== state.rtsSupport) {\r\n setState({ ...state, rtsSupport: e.target.value, updateMasterCrewSchedulePavingTable: true });\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: state.truckCo,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n superIntendent: state.pavingSuper,\r\n shift: props.item?.shift as string,\r\n updateMasterCrewSchedulePavingTable: true,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: item?.pavingForeman as string,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n rtsSupport: e.target.value,\r\n }));\r\n }\r\n }\r\n\r\n const onBookTruckVendor = (e: React.ChangeEvent) => {\r\n const oilTruck = e.target.value != null && e.target.value !== \"\" ? \"true\" : \"false\";\r\n\r\n if (e.target.value !== state.bookTruckVendor) {\r\n setState({ ...state, bookTruckVendor: e.target.value, updateMasterCrewSchedulePavingTable: true });\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: state.truckCo,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n superIntendent: state.pavingSuper,\r\n typeOfTrucks: state.typeOfTrucks,\r\n shift: props.item?.shift as string,\r\n updateMasterCrewSchedulePavingTable: true,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: item?.pavingForeman as string,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n oilTruk: oilTruck,\r\n bookTruckVendor: e.target.value,\r\n }));\r\n }\r\n }\r\n\r\n const onUtsChange = (e: React.ChangeEvent) => {\r\n if (e.target.value !== state.uts) {\r\n setState({ ...state, uts: e.target.value, updateMasterCrewSchedulePavingTable: true });\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: state.truckCo,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n superIntendent: state.pavingSuper,\r\n shift: props.item?.shift as string,\r\n updateMasterCrewSchedulePavingTable: true,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: item?.pavingForeman as string,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n uts: e.target.value,\r\n }));\r\n }\r\n }\r\n\r\n const onMixSubmital = (e: React.ChangeEvent) => {\r\n if (e.target.value !== state.mixSubmital) {\r\n setState({ ...state, mixSubmital: e.target.value, updateMasterCrewSchedulePavingTable: true });\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: state.truckCo,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n superIntendent: state.pavingSuper,\r\n typeOfTrucks: state.typeOfTrucks,\r\n shift: props.item?.shift as string,\r\n updateMasterCrewSchedulePavingTable: true,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: item?.pavingForeman as string,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n mixSubmital: e.target.value,\r\n }));\r\n }\r\n }\r\n\r\n const onExtraWorkChange = (e: React.ChangeEvent) => {\r\n if (e.target.value !== state.extrawork) {\r\n setState({ ...state, extrawork: e.target.value, updateMasterCrewSchedulePavingTable: true });\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: state.truckCo,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n superIntendent: state.pavingSuper,\r\n shift: props.item?.shift as string,\r\n updateMasterCrewSchedulePavingTable: true,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: item?.pavingForeman as string,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n extrawork: e.target.value\r\n }));\r\n }\r\n }\r\n\r\n const onMaterialChange = (e: React.ChangeEvent) => {\r\n if (e.target.value !== state.material) {\r\n setState({ ...state, material: e.target.value, updateMasterCrewSchedulePavingTable: true, updateMasterCrewScheduleTable: true });\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: state.truckCo,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n superIntendent: state.pavingSuper,\r\n shift: props.item?.shift as string,\r\n updateMasterCrewSchedulePavingTable: true,\r\n updateMasterCrewScheduleTable: true,\r\n material: e.target.value,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: item?.pavingForeman as string,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n }));\r\n }\r\n }\r\n\r\n const onPlantChange = (e: React.ChangeEvent) => {\r\n if (e.target.value !== state.plant) {\r\n setState({ ...state, plant: e.target.value, updateMasterCrewSchedulePavingTable: true });\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: state.truckCo,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n superIntendent: state.pavingSuper,\r\n shift: props.item?.shift as string,\r\n updateMasterCrewSchedulePavingTable: true,\r\n plant: e.target.value,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: item?.pavingForeman as string,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n }));\r\n }\r\n }\r\n\r\n const onGrinder4ftChange = (e: React.ChangeEvent) => {\r\n let grinder4ft: Maybe = parseInt(e.target.value);\r\n grinder4ft = isNaN(grinder4ft) ? null : grinder4ft;\r\n if (grinder4ft != null && (grinder4ft < 0 || grinder4ft > 999)) { return }\r\n\r\n if (grinder4ft !== state.grinder4ft) {\r\n setState({ ...state, grinder4ft: grinder4ft as number, updateMasterCrewSchedulePavingTable: true });\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: state.truckCo,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n superIntendent: state.pavingSuper,\r\n shift: props.item?.shift as string,\r\n updateMasterCrewSchedulePavingTable: true,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: item?.pavingForeman as string,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n grinder4ft: grinder4ft as number,\r\n }));\r\n }\r\n }\r\n\r\n const onGrinder6ftChange = (e: React.ChangeEvent) => {\r\n let grinder6ft: Maybe = parseInt(e.target.value);\r\n grinder6ft = isNaN(grinder6ft) ? null : grinder6ft;\r\n if (grinder6ft != null && (grinder6ft < 0 || grinder6ft > 999)) { return }\r\n\r\n if (grinder6ft !== state.grinder6ft) {\r\n setState({ ...state, grinder6ft: grinder6ft as number, updateMasterCrewSchedulePavingTable: true });\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: state.truckCo,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n superIntendent: state.pavingSuper,\r\n shift: props.item?.shift as string,\r\n updateMasterCrewSchedulePavingTable: true,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: item?.pavingForeman as string,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n grinder6ft: grinder6ft as number,\r\n }));\r\n }\r\n }\r\n\r\n const onGrinder7ftChange = (e: React.ChangeEvent) => {\r\n let grinder7ft: Maybe = parseInt(e.target.value);\r\n grinder7ft = isNaN(grinder7ft) ? null : grinder7ft;\r\n if (grinder7ft != null && (grinder7ft < 0 || grinder7ft > 999)) { return }\r\n\r\n if (grinder7ft !== state.grinder7ft) {\r\n setState({ ...state, grinder7ft: grinder7ft as number, updateMasterCrewSchedulePavingTable: true });\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: state.truckCo,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n superIntendent: state.pavingSuper,\r\n shift: props.item?.shift as string,\r\n updateMasterCrewSchedulePavingTable: true,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: item?.pavingForeman as string,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n grinder7ft: grinder7ft as number,\r\n }));\r\n }\r\n }\r\n\r\n const onGrinder12ftChange = (e: React.ChangeEvent) => {\r\n let grinder12ft: Maybe = parseInt(e.target.value);\r\n grinder12ft = isNaN(grinder12ft) ? null : grinder12ft;\r\n if (grinder12ft != null && (grinder12ft < 0 || grinder12ft > 999)) { return }\r\n\r\n if (grinder12ft !== state.grinder12ft) {\r\n setState({ ...state, grinder12ft: grinder12ft as number, updateMasterCrewSchedulePavingTable: true });\r\n dispatch(saveChangesToItemFromFullDayPreview({\r\n ...state,\r\n broker: state.truckCo,\r\n date: props.item?.date,\r\n jobNumber: props.item?.jobNumber as number,\r\n locatinIndex: props.item?.locationIndex as number,\r\n superIntendent: state.pavingSuper,\r\n shift: props.item?.shift as string,\r\n updateMasterCrewSchedulePavingTable: true,\r\n loadOutTime: state.loadOutTime as string,\r\n areaManager: item?.areaManager as string,\r\n jobMap: item?.jobMap as string,\r\n jobName: item?.jobName as string,\r\n pavingForeman: item?.pavingForeman as string,\r\n pavingSuper: item?.pavingSuperIntendent as string,\r\n pavingSuperIntendent: item?.superIntendent as string,\r\n pmpe: item?.pmpe as string,\r\n crewMakeLab: item?.crewMakeLab as number,\r\n crewMakeOp: item?.crewMakeOp as number,\r\n resourcesLab: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesLab != null) ? fullDayPreviewItem.resourcesLab : item?.resourcesLab as [Resource],\r\n resourcesOp: (fullDayPreviewItem != null && fullDayPreviewItem.resourcesOp != null) ? fullDayPreviewItem.resourcesOp : item?.resourcesOp as [Resource],\r\n grinder12ft: grinder12ft as number,\r\n }));\r\n }\r\n }\r\n\r\n const isDayDisabled = () => {\r\n return isDayBlocked || lockedJobs?.includes(props.item?.jobNumber as number) || (props.item?.shift === \"\" || props.item?.shift === \" \" || props.item?.shift == null);\r\n }\r\n\r\n const isDayInThePast = () => {\r\n const day = moment(parseInt(props.item?.date)).utc().format(\"MM-DD-YY\");\r\n return day < currentDay ? true : false;\r\n }\r\n\r\n const setCrewCompositionLabAssigment = () => {\r\n if (props.isSupersSelectDisabled || isDayDisabled()) return;\r\n modal?.openModal?.({\r\n element: []}\r\n otherResources={props.item?.resourcesOp as Maybe[]}\r\n type={\"Labor\"}\r\n item={props.item}\r\n itemState={state}\r\n updateJobInfoTable={state.updateJobInfoTable}\r\n updateMasterCrewSchedulePavingTable={state.updateMasterCrewSchedulePavingTable}\r\n updateMasterCrewScheduleTable={state.updateMasterCrewScheduleTable}\r\n />\r\n })\r\n }\r\n\r\n const setCrewCompositionOpAssigment = () => {\r\n if (props.isSupersSelectDisabled || isDayDisabled()) return;\r\n modal?.openModal?.({\r\n element: []}\r\n otherResources={props.item?.resourcesLab as Maybe[]}\r\n type={\"Operator\"}\r\n item={props.item}\r\n itemState={state}\r\n updateJobInfoTable={state.updateJobInfoTable}\r\n updateMasterCrewSchedulePavingTable={state.updateMasterCrewSchedulePavingTable}\r\n updateMasterCrewScheduleTable={state.updateMasterCrewScheduleTable}\r\n />\r\n })\r\n\r\n }\r\n\r\n return (\r\n <>\r\n {loading && }\r\n {error != null && }\r\n \r\n
{item?.jobNumber as number}
\r\n
{item?.jobName as string}
\r\n
{item?.pmpe}
\r\n
{item?.shift as string}
\r\n
\r\n \r\n \r\n {\r\n _pavingSupers != null && _pavingSupers?.map((pavSuper, index) => (\r\n \r\n ))\r\n }\r\n \r\n
\r\n
\r\n \r\n \r\n {\r\n props.pavingForemans != null && props.pavingForemans?.map((pavForeman, index) => (\r\n \r\n ))\r\n }\r\n \r\n
\r\n
\r\n onTonnageChange(e)}\r\n type=\"text\"\r\n maxLength={5}\r\n />\r\n
\r\n
\r\n onTPHChange(e)}\r\n type=\"text\"\r\n maxLength={5}\r\n />\r\n
\r\n
\r\n \r\n \r\n {\r\n materials && materials.filter(m => m?.operationType === \"paving\").sort().map((material, index) => (\r\n \r\n ))\r\n }\r\n \r\n
\r\n
\r\n onMixSubmital(e)}\r\n type=\"text\"\r\n maxLength={20}\r\n />\r\n
\r\n
\r\n \r\n \r\n {\r\n plantData != null && plantData?.map((plant, index) => (\r\n \r\n ))\r\n }\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n onRtsSupport(e)}\r\n type=\"text\"\r\n maxLength={20}\r\n />\r\n
\r\n
\r\n onBookTruckVendor(e)}\r\n type=\"text\"\r\n maxLength={20}\r\n />\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n onNrOfTrucksChange(e)}\r\n type=\"text\"\r\n disabled={props.isSupersSelectDisabled || isDayDisabled() || isDayInThePast()}\r\n onBlur={() => { }}\r\n maxLength={3}\r\n />\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
{fullDayPreviewItem?.crewMakeOp != null ? fullDayPreviewItem?.crewMakeOp : item?.crewMakeOp as number}
\r\n
{fullDayPreviewItem?.crewMakeLab != null ? fullDayPreviewItem?.crewMakeLab : item?.crewMakeLab as number}
\r\n
\r\n
\r\n onGrinder4ftChange(e)}\r\n type=\"text\"\r\n disabled={props.isSupersSelectDisabled || isDayDisabled() || isDayInThePast()}\r\n onBlur={() => { }}\r\n maxLength={3}\r\n />\r\n onGrinder6ftChange(e)}\r\n type=\"text\"\r\n disabled={props.isSupersSelectDisabled || isDayDisabled() || isDayInThePast()}\r\n onBlur={() => { }}\r\n maxLength={3}\r\n />\r\n onGrinder7ftChange(e)}\r\n type=\"text\"\r\n disabled={props.isSupersSelectDisabled || isDayDisabled() || isDayInThePast()}\r\n onBlur={() => { }}\r\n maxLength={3}\r\n />\r\n onGrinder12ftChange(e)}\r\n type=\"text\"\r\n disabled={props.isSupersSelectDisabled || isDayDisabled() || isDayInThePast()}\r\n onBlur={() => { }}\r\n maxLength={3}\r\n />\r\n
\r\n
\r\n \r\n \r\n )\r\n}","import React, { FC, useState } from \"react\";\r\nimport \"./ExpandableSheet.css\"\r\n\r\ninterface IExpandableSheetProps {\r\n key: number,\r\n children: any\r\n}\r\n\r\nexport const ExpandableSheet: FC = (props) => {\r\n\r\n const [expanded, setExpanded] = useState(false);\r\n const onChange = () => {\r\n if (expanded === true) setExpanded(false);\r\n else if (expanded === false) setExpanded(true);\r\n }\r\n\r\n return (\r\n \r\n onChange()}>\r\n \r\n\r\n {props.children}\r\n\r\n \r\n )\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const SAVE_FULL_DAY_PREVIEW = gql`\r\n mutation saveFullDayPreview($where: [SheetRowDayPreviewInput!]!) {\r\n saveFullDayPreview(where: $where)\r\n }\r\n`;","import { Maybe, SuperIntendentPavingCalendarDatas } from \"../graphql/schema-types\";\r\n\r\nexport interface ISuperIntendentPavingCalendarDatasByDateAndSuperIntendentName {\r\n [date: string]: {\r\n [foreman: string]: Maybe[];\r\n }\r\n}\r\n\r\nexport interface IDayItemsLength {\r\n [date: string]: { itemsLength: number }\r\n}\r\n\r\nexport interface IState {\r\n filteredItems: ISuperIntendentPavingCalendarDatasByDateAndSuperIntendentName\r\n dayItemsLength: IDayItemsLength\r\n}\r\n\r\nexport const filteredItems = (days: string[], pavingForemans: string[], items: Maybe[]): IState => {\r\n const mappedItems: ISuperIntendentPavingCalendarDatasByDateAndSuperIntendentName = {};\r\n const dayItemsLength: IDayItemsLength = {}\r\n\r\n const init = (day: string, foreman: string) => {\r\n if (mappedItems[day] == null) {\r\n mappedItems[day] = {};\r\n }\r\n\r\n if (mappedItems[day][foreman] == null) {\r\n mappedItems[day][foreman] = [];\r\n }\r\n }\r\n\r\n const initDayItemsLength = (day: string) => {\r\n if (dayItemsLength[day] == null) {\r\n dayItemsLength[day] = {\r\n itemsLength: 0\r\n };\r\n }\r\n }\r\n\r\n days?.forEach(day => {\r\n const itemsFromCurrentDay = items.filter(item => item != null && item.date === parseInt(day));\r\n\r\n pavingForemans?.forEach(foreman => {\r\n const itemsFromForeman = itemsFromCurrentDay.filter(item => item?.pavingForeman === foreman);\r\n\r\n itemsFromForeman.forEach(item => {\r\n init(day, foreman);\r\n\r\n mappedItems[day][foreman].push(item);\r\n });\r\n\r\n if (itemsFromForeman.length > 0) {\r\n initDayItemsLength(day);\r\n if (dayItemsLength[day].itemsLength < itemsFromForeman.length) {\r\n dayItemsLength[day].itemsLength = itemsFromForeman.length;\r\n }\r\n }\r\n });\r\n\r\n const itemsUnassigned = itemsFromCurrentDay.filter(item => item?.pavingForeman == null || item.pavingForeman === \" \");\r\n\r\n if (itemsUnassigned.length > 0) {\r\n initDayItemsLength(day);\r\n if (dayItemsLength[day].itemsLength < itemsUnassigned.length) {\r\n dayItemsLength[day].itemsLength = itemsUnassigned.length;\r\n }\r\n }\r\n\r\n itemsUnassigned?.forEach(item => {\r\n init(day, \"Unassgined\");\r\n\r\n mappedItems[day][\"Unassgined\"].push(item);\r\n });\r\n\r\n });\r\n return {\r\n filteredItems: mappedItems,\r\n dayItemsLength\r\n };\r\n}","\r\nimport { useMutation, useQuery } from \"@apollo/react-hooks\";\r\nimport React, { FC, useContext, useEffect, useRef, useState } from \"react\";\r\nimport \"./FullDayPreviewPage.css\";\r\nimport { SUPER_INTENDENT_PAVING_CALENDAR_DATAS_QUERY } from \"../../graphql/queries/SUPER_INTENDENT_PAVING_CALENDAR_DATAS_QUERY\";\r\nimport { Query, ResourcesInput, SheetRowDayPreviewInput } from \"../../graphql/schema-types\";\r\nimport { SheetHeader } from \"../SuperIntendentPavingModule/FullDayPreview/SheetHeader/SheetHeader\";\r\nimport moment from \"moment\";\r\nimport { SheetRow } from \"../SuperIntendentPavingModule/FullDayPreview/SheetRow/SheetRow\";\r\nimport { FullScreenLoadingIndicator } from \"../Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\nimport { createPavingModule, updateItemsFromPavingModule } from \"../../redux/appSlice\";\r\nimport { useDispatch, useSelector, useStore } from \"react-redux\";\r\nimport { RootState } from \"../../redux/store\";\r\nimport { ExpandableSheet } from \"../SuperIntendentPavingModule/FullDayPreview/ExpandableSheet/ExpandableSheet\";\r\nimport { SAVE_FULL_DAY_PREVIEW } from \"../../graphql/mutations/SAVE_FULL_DAY_PREVIEW\";\r\nimport { ScrollSync } from 'scroll-sync-react';\r\nimport { ScrollSyncNode } from 'scroll-sync-react';\r\nimport to from \"await-to-js\";\r\nimport { ModalContext } from \"../Modal/ModalContext/ModalContext\";\r\nimport { GeneralWarningModal } from \"../Warnings & errors/GeneralWarningModal/GeneralWarningModal\";\r\nimport { SleepMode } from \"../Warnings & errors/SleepMode/SleepMode\";\r\nimport { PAVING_FOREMANS_QUERY } from \"../../graphql/queries/PAVING_FOREMANS_QUERY\";\r\nimport { filteredItems, IState } from \"../../utils/filteredItems\";\r\n\r\ninterface IFullDayPreviewPageProps { }\r\n\r\nexport const FullDayPreviewPage: FC = (props) => {\r\n const isGeneral = useSelector((state: RootState) => state.app?.pavingModuleUser.isInGeneralPavingSupers);\r\n const truckingDatas = useSelector((state: RootState) => state.app?.truckingDatas);\r\n const fullDayPreviewItemsToUpdate = useSelector((state: RootState) => state.app?.fullDayPreview);\r\n const pavingModuleUserName = useSelector((state: RootState) => state.app?.pavingModuleUser.name);\r\n const daysPavingModule = useSelector((state: RootState) => state.app.pavingModule);\r\n\r\n const [state, setState] = useState(filteredItems([], [], []));\r\n const [call, setCall] = useState(false);\r\n const [queryCounter, setQueryCounter] = useState(0);\r\n const [sleepMode, setSleepMode] = useState(false);\r\n\r\n const dispatch = useDispatch();\r\n const store = useStore();\r\n const modal = useContext(ModalContext);\r\n const ref = useRef(null);\r\n\r\n const _daysPavingModule = Object.keys(daysPavingModule);\r\n\r\n // we calculate the first day we generate from the current week + 2 week in the past\r\n const _firstDay = moment(parseInt(_daysPavingModule[0])).utc().subtract(14, \"days\").format(\"YYYY-MM-DD\");\r\n const _currentDay = moment().utc().format(\"MM-DD-YY\");\r\n\r\n // generate 6 and half months from the _firstDay\r\n const generatedDays = createPavingModule(194, _firstDay);\r\n const _lastDay = Object.keys(generatedDays)[Object.keys(generatedDays).length - 1];\r\n\r\n const { data: pavingForemansList } = useQuery>(PAVING_FOREMANS_QUERY);\r\n\r\n const { data, loading, refetch } = useQuery>(SUPER_INTENDENT_PAVING_CALENDAR_DATAS_QUERY, {\r\n variables: { where: { startDate: parseInt(_daysPavingModule[0]), endDate: parseInt(_lastDay), pavingSuperName: pavingModuleUserName == null ? \"\" : pavingModuleUserName } },\r\n skip: _daysPavingModule[0] == null || _daysPavingModule[_daysPavingModule.length - 1] == null || pavingModuleUserName == null || _lastDay == null,\r\n fetchPolicy: \"no-cache\",\r\n errorPolicy: \"all\",\r\n });\r\n\r\n const [saveFullDayPreview, { loading: loadingSave }] = useMutation(SAVE_FULL_DAY_PREVIEW);\r\n\r\n const pavingForemans: string[] | undefined = pavingForemansList?.pavingForemans\r\n .map(foreman => foreman?.username as string);\r\n\r\n // remove duplicates from array\r\n const filteredPavForemans: string[] | undefined = pavingForemans?.filter((foreman, index) => pavingForemans?.indexOf(foreman) === index);\r\n filteredPavForemans != null && filteredPavForemans.push(\"Unassgined\");\r\n\r\n useEffect(() => {\r\n if (data == null || data.superIntendentPavingCalendarDatas == null) return;\r\n\r\n setState(\r\n {\r\n ...state,\r\n filteredItems: filteredItems(Object.keys(generatedDays), filteredPavForemans as string[], data.superIntendentPavingCalendarDatas.correctItems).filteredItems,\r\n dayItemsLength: filteredItems(Object.keys(generatedDays), filteredPavForemans as string[], data.superIntendentPavingCalendarDatas.correctItems).dayItemsLength\r\n }\r\n );\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [data, data?.superIntendentPavingCalendarDatas])\r\n\r\n const MINUTE_MS = 5000;\r\n\r\n useEffect(() => {\r\n const interval = setInterval(() => {\r\n console.log('Verify if new items were added in the last 5 seconds');\r\n if (sleepMode === false) {\r\n setCall(true);\r\n }\r\n\r\n }, MINUTE_MS);\r\n\r\n return () => {\r\n clearInterval(interval);\r\n } // This represents the unmount function, in which you need to clear your interval to prevent memory leaks.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [call])\r\n\r\n useEffect(() => {\r\n if (call === false) return;\r\n if (queryCounter === 120) // after 10 minutes\r\n {\r\n setSleepMode(true);\r\n setCall(false);\r\n modal?.openModal({\r\n element:\r\n { setSleepMode(false); setQueryCounter(0); }}\r\n onCancel={() => { setSleepMode(false); setQueryCounter(0); }} />\r\n })\r\n return;\r\n }\r\n else {\r\n refetch();\r\n setCall(false);\r\n setQueryCounter(queryCounter + 1);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [call])\r\n\r\n const onSave = async () => {\r\n const state = store.getState();\r\n\r\n let isStateReadyToSave = true;\r\n\r\n for (let i = 0; i < state.app.fullDayPreview.length; i++) {\r\n const currentItem = state.app.fullDayPreview[i];\r\n if (currentItem.broker == null) {\r\n if (currentItem.tonnage == null) {\r\n isStateReadyToSave = false;\r\n break;\r\n }\r\n }\r\n if (currentItem.broker != null) {\r\n if (currentItem.nrOfTrucks == null || currentItem.tonnage == null) {\r\n isStateReadyToSave = false;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (isStateReadyToSave === false) {\r\n modal?.openModal({\r\n element: \r\n })\r\n return;\r\n }\r\n\r\n let _fullDayPreviewItemsToUpdate: SheetRowDayPreviewInput[] = [];\r\n let _reduxFullDayPreviewItemsToUpdate = fullDayPreviewItemsToUpdate;\r\n\r\n _reduxFullDayPreviewItemsToUpdate.forEach(fd => {\r\n let resOp: ResourcesInput[] = [];\r\n let resLab: ResourcesInput[] = [];\r\n fd.resourcesLab.forEach(r => {\r\n resLab.push({\r\n resourceDescription: r.resourceDescription,\r\n resourceID: r.resourceID,\r\n resourceQTY: r.resourceQTY,\r\n resourceType: r.resourceType\r\n });\r\n });\r\n\r\n fd.resourcesOp.forEach(r => {\r\n resOp.push({\r\n resourceDescription: r.resourceDescription,\r\n resourceID: r.resourceID,\r\n resourceQTY: r.resourceQTY,\r\n resourceType: r.resourceType\r\n });\r\n });\r\n\r\n _fullDayPreviewItemsToUpdate.push({\r\n locIndex: fd.locatinIndex,\r\n nrOfTrucks: fd.nrOfTrucks,\r\n pavingSuper: fd.superIntendent,\r\n date: fd.date,\r\n jobNumber: fd.jobNumber,\r\n broker: fd.broker,\r\n shift: fd.shift,\r\n tonnage: fd.tonnage,\r\n material: fd.material as string,\r\n plant: fd.plant as string,\r\n loadOutTime: fd.loadOutTime as string,\r\n typeOfTrucks: fd.typeOfTrucks,\r\n updateJobInfoTable: fd.updateJobInfoTable,\r\n updateMasterCrewSchedulePavingTable: fd.updateMasterCrewSchedulePavingTable,\r\n updateMasterCrewScheduleTable: fd.updateMasterCrewScheduleTable,\r\n areaManager: fd.areaManager as string,\r\n jobMap: fd.jobMap,\r\n jobName: fd.jobName,\r\n pavingForeman: fd.pavingForeman,\r\n pavingSuperIntendent: fd.pavingSuperIntendent,\r\n pmpe: fd.pmpe,\r\n superIntendent: fd.superIntendent,\r\n resourcesOp: resOp,\r\n resourcesLab: resLab,\r\n bookTruckVendor: fd.bookTruckVendor,\r\n extraWork: fd.extrawork,\r\n grinder12ft: fd.grinder12ft,\r\n grinder4ft: fd.grinder4ft,\r\n grinder6ft: fd.grinder6ft,\r\n grinder7ft: fd.grinder7ft,\r\n mixDesignApproval: fd.mixDesignApproval,\r\n mixSubmital: fd.mixSubmital,\r\n oilTruck: fd.oilTruk,\r\n rtsSupport: fd.rtsSupport,\r\n tph: fd.tph,\r\n uts: fd.uts\r\n });\r\n dispatch(updateItemsFromPavingModule(fd));\r\n })\r\n\r\n if (_fullDayPreviewItemsToUpdate.length > 0) {\r\n await to(\r\n saveFullDayPreview({\r\n variables: {\r\n where: _fullDayPreviewItemsToUpdate\r\n },\r\n })\r\n );\r\n }\r\n }\r\n\r\n const onScrollLeft = () => {\r\n const container = document.getElementById('rightSide');\r\n sideScroll(container, 'left', 25, 100, 10);\r\n };\r\n\r\n const onScrollRight = () => {\r\n const container = document.getElementById('rightSide');\r\n sideScroll(container, 'right', 25, 100, 10);\r\n\r\n };\r\n\r\n const onScrollUp = () => {\r\n const container = document.getElementById('secondaryScroll');\r\n sideScroll(container, 'up', 25, 100, 10);\r\n };\r\n\r\n const onScrollDown = () => {\r\n const container = document.getElementById('secondaryScroll');\r\n sideScroll(container, 'down', 25, 100, 10);\r\n\r\n };\r\n\r\n\r\n const sideScroll = (element: any, direction: string, speed: number, distance: number, step: number) => {\r\n let scrollAmount = 0;\r\n const slideTimer = setInterval(function () {\r\n if (direction === 'left') {\r\n element.scrollLeft -= step;\r\n } else if (direction === 'right') {\r\n element.scrollLeft += step;\r\n } else if (direction === 'up') {\r\n element.scrollTop -= step;\r\n } else if (direction === 'down') {\r\n element.scrollTop += step;\r\n }\r\n scrollAmount += step;\r\n if (scrollAmount >= distance) {\r\n window.clearInterval(slideTimer);\r\n }\r\n }, speed);\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n {(loading || loadingSave) && }\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {\r\n Object.keys(generatedDays)?.map((day, index) => (\r\n
{moment(parseInt(day)).utc().format(\"MM-DD-YY\")}
\r\n ))\r\n }\r\n
\r\n
\r\n
\r\n {\r\n filteredPavForemans && filteredPavForemans?.map((pavForemanName, i) => (\r\n \r\n\r\n
\r\n
\r\n
{(pavForemanName == null || pavForemanName === \" \") ? \"Unassigned\" : pavForemanName + \" \"}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {\r\n Object.keys(generatedDays)?.map(day => (\r\n
\r\n {\r\n state?.filteredItems?.[day]?.[pavForemanName]?.map((superIntendentPavingCalendarData, index) => (\r\n
\r\n \r\n
\r\n ))\r\n }\r\n
\r\n ))\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ))\r\n }\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n );\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const POST_TO_SNS = gql`\r\n mutation postToSns {\r\n postToSns\r\n }\r\n`;","import { useQuery } from \"@apollo/react-hooks\";\r\nimport moment from \"moment\";\r\nimport React, { FC, useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useImmer } from \"use-immer\";\r\nimport { SUPER_INTENDENT_PAVING_CALENDAR_DATAS_QUERY } from \"../../../graphql/queries/SUPER_INTENDENT_PAVING_CALENDAR_DATAS_QUERY\";\r\nimport { Maybe, Query, SuperIntendentPavingCalendarDatas } from \"../../../graphql/schema-types\";\r\nimport { RootState } from \"../../../redux/store\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\nimport { FullScreenLoadingIndicator } from \"../../Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\nimport \"./AuditTrail.css\";\r\n\r\ninterface IAuditTrail {\r\n onClose?(): void;\r\n}\r\n\r\nexport const AuditTrail: FC = props => {\r\n const [pavingItems, setPavingItems] = useImmer[] | undefined>([]);\r\n\r\n const items = useSelector((state: RootState) => state.app?.pavingModule);\r\n const daysFromState: string[] = Object.keys(items);\r\n const pavingModuleUser = useSelector((state: RootState) => state.app?.pavingModuleUser);\r\n\r\n const { data, loading } = useQuery>(SUPER_INTENDENT_PAVING_CALENDAR_DATAS_QUERY, {\r\n variables: { where: { startDate: parseInt(daysFromState[0]), endDate: parseInt(daysFromState[daysFromState.length - 1]), pavingSuperName: pavingModuleUser.name } },\r\n skip: Object.keys(items).length === 0,\r\n fetchPolicy: \"no-cache\",\r\n errorPolicy: \"all\",\r\n });\r\n\r\n useEffect(() => {\r\n const _newPavAdded = data?.superIntendentPavingCalendarDatas.correctItems\r\n .filter(pav => pav?.addedDate != null || moment(pav?.pavingTimeStamp).format(\"YYYY.MM.DD\") <= moment().utc().format(\"YYYY.MM.DD\"))\r\n .sort((a, b) => moment(a?.addedDate).format(\"YYYY.MM.DD\") > moment(b?.addedDate).format(\"YYYY.MM.DD\") ? -1 : 1)\r\n .slice(0, 49);\r\n\r\n const _dayNewPavingAdded = _newPavAdded?.filter(pav => pav?.shift === \"D\");\r\n const _nightNewPavingAdded = _newPavAdded?.filter(pav => pav?.shift === \"N\");\r\n\r\n const _newPavingAdded: Maybe[] | undefined = [];\r\n if (_dayNewPavingAdded != null && _nightNewPavingAdded != null) {\r\n _newPavingAdded.push(\r\n ..._dayNewPavingAdded as Maybe[],\r\n ..._nightNewPavingAdded as Maybe[]\r\n );\r\n }\r\n\r\n const pavingItemsWithAddedDate = _newPavingAdded?.filter(pav => pav?.addedDate != null);\r\n const pavingItemsWithoutAddedDate = _newPavingAdded?.filter(pav => pav?.addedDate == null);\r\n\r\n setPavingItems(draft => {\r\n if (pavingItemsWithAddedDate != null && pavingItemsWithoutAddedDate != null) {\r\n draft?.push(...pavingItemsWithAddedDate, ...pavingItemsWithoutAddedDate);\r\n }\r\n });\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [data?.superIntendentPavingCalendarDatas.correctItems])\r\n\r\n return (\r\n <>\r\n {(loading) && }\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
\r\n props.onClose?.()} />\r\n
\r\n
\r\n
\r\n
Project Manager
\r\n
Paving Date
\r\n
Shift
\r\n
Added Date
\r\n
Edited Date
\r\n
Job Number & Name
\r\n
\r\n
\r\n {\r\n pavingItems?.map((pav, i) => (\r\n
\r\n
{pav?.pmpe}
\r\n
{moment(pav?.date).format(\"MM-DD-YYYY\")}
\r\n
{pav?.shift}
\r\n
{pav?.addedDate != null ? moment(pav?.addedDate).format(\"MM-DD-YYYY\") : \"-\"}
\r\n
{moment(pav?.pavingTimeStamp).format(\"MM-DD-YYYY\")}
\r\n
{pav?.jobNumber} - {pav?.jobName}
\r\n
\r\n ))\r\n }\r\n
\r\n
\r\n
\r\n \r\n )\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const EQUIPMENT_MANAGEMENT_DATAS_QUERY = gql`\r\n query equipmentManagementDatas($where: EquipmentManagementQueryInput!) {\r\n equipmentManagementDatas(where: $where) {\r\n uID\r\n date\r\n constant\r\n jobNumber\r\n equipmentResources {\r\n eqID\r\n eqName\r\n eqSubcategoryDescription\r\n eqSubcategoryID\r\n jobNumber\r\n jobName\r\n locIndex\r\n }\r\n equipmentSubcategoryData {\r\n eqSubcategoryDescription\r\n eqSubcategoryID\r\n jobNumber\r\n jobName\r\n locIndex\r\n qty\r\n }\r\n }\r\n }\r\n`;\r\n","import \"./EquipmentDetailsWindow.css\";\r\nimport { useQuery } from \"@apollo/react-hooks\";\r\nimport React, { FC, useEffect, useRef, useState } from \"react\";\r\nimport { ScrollSync } from 'scroll-sync-react';\r\nimport { ScrollSyncNode } from 'scroll-sync-react';\r\nimport { useSelector } from \"react-redux\";\r\nimport { EQUIPMENT_MANAGEMENT_DATAS_QUERY } from \"../../../graphql/queries/EQUIPMENT_MANAGEMENT_DATAS_QUERY\";\r\nimport { EquipmentManagementData, EquipmentResource, Maybe, Query } from \"../../../graphql/schema-types\";\r\nimport { RootState } from \"../../../redux/store\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\nimport { FullScreenErrorIndicator } from \"../../Modal/ErrorIndicator/FullScreenErrorIndicator\";\r\nimport { FullScreenLoadingIndicator } from \"../../Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\nimport moment from \"moment\";\r\nimport { toMultiMap } from \"../../../utils/toMultiMap\";\r\n\r\ninterface IEquipmentDetailsWindowProps {\r\n onClose?(): void\r\n}\r\ninterface IState {\r\n [eqName: string]: {\r\n [date: string]: number[];\r\n }\r\n}\r\n\r\nconst filteredItems = (days: string[], equipmentNameList: string[], equipmentItems: Maybe[], equipmentSubcategoryName?: string[]): IState => {\r\n const mappedItems: IState = {};\r\n\r\n const init = (day: number, eqName: string) => {\r\n if (mappedItems[eqName] == null) {\r\n mappedItems[eqName] = {};\r\n }\r\n\r\n if (mappedItems[eqName][day] == null) {\r\n mappedItems[eqName][day] = [];\r\n }\r\n }\r\n\r\n if (equipmentNameList.length > 0 && days.length > 0) {\r\n equipmentNameList.forEach(eqName => {\r\n days.forEach(day => {\r\n\r\n const filteredItemsByDate = equipmentItems\r\n .filter(item => item?.date === parseInt(day));\r\n\r\n const resources = filteredItemsByDate\r\n .map(item => item?.equipmentResources)\r\n .flat();\r\n\r\n resources?.forEach(r => {\r\n if (r?.eqName === eqName) {\r\n init(parseInt(day), eqName);\r\n\r\n mappedItems[eqName][day].push(r?.jobNumber as number);\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n if (equipmentSubcategoryName != null && equipmentSubcategoryName.length > 0 && days.length > 0) {\r\n equipmentSubcategoryName.forEach(e => {\r\n days.forEach(day => {\r\n const filteredItemsByDate = equipmentItems\r\n .filter(item => item?.date === parseInt(day));\r\n\r\n const resources = filteredItemsByDate\r\n .map(item => item?.equipmentSubcategoryData)\r\n .flat();\r\n\r\n resources?.forEach(r => {\r\n if (r?.eqSubcategoryDescription === e) {\r\n init(parseInt(day), e);\r\n mappedItems[e][day].push(r?.qty as number);\r\n }\r\n });\r\n })\r\n })\r\n }\r\n\r\n return mappedItems\r\n}\r\n\r\nexport const EquipmentDetailsWindow: FC = (props) => {\r\n const ref = useRef(null);\r\n\r\n const [state, setState] = useState(filteredItems([], [], []));\r\n const [equipmentNameList, setEquipmentNameList] = useState([]);\r\n const [equipmentSubcategoriesList, setSubcategoriesList] = useState([]);\r\n // const [equipmentNameListByCategory, setEquipmentNameListByCategory] = useState<{ [key: string]: [Maybe]; }>({});\r\n\r\n // const [scroll, setScroll] = useState(false);\r\n\r\n const equipmentResources = useSelector((state: RootState) => state.app?.equipmentResources);\r\n const equipmentSubcategories = useSelector((state: RootState) => state.app?.equipmentSubcategories);\r\n const days = useSelector((state: RootState) => state.app?.pavingModule);\r\n\r\n const { data, loading, error } = useQuery>(EQUIPMENT_MANAGEMENT_DATAS_QUERY, {\r\n variables: {\r\n where: {\r\n startDate: parseInt(Object.keys(days)[0]),\r\n endDate: parseInt(Object.keys(days)[Object.keys(days).length - 1])\r\n }\r\n },\r\n skip: Object.keys(days).length === 0,\r\n fetchPolicy: \"no-cache\"\r\n });\r\n\r\n useEffect(() => {\r\n document.body.style.overflow = 'hidden'\r\n return () => {\r\n document.body.removeAttribute('style')\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n window.onpopstate = (e: any) => {\r\n props?.onClose?.()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n let _subcategories: string[] = [];\r\n let _equipmentNameList: Maybe[] = [];\r\n let _equipmentSubcategoryList: Maybe[] = [];\r\n let _equipmentNameListByCategoryId = toMultiMap(equipmentResources ?? [], resource => resource?.eqSubcategoryID ?? \"\");\r\n // let _equipmentNameListByCategory = toMultiMap(equipmentResources ?? [], resource => resource?.eqSubcategoryDescription ?? \"\");\r\n\r\n Object.keys(_equipmentNameListByCategoryId).forEach(key => {\r\n _equipmentNameListByCategoryId[key].sort((a, b) => a?.eqName! < b?.eqName! ? -1 : 1)\r\n });\r\n\r\n if (Object.keys(_equipmentNameListByCategoryId).length > 0) {\r\n\r\n // get equip subcategories from query; split them by \",\" and filter the resources ony by these subcategories\r\n let equipments = equipmentSubcategories?.equipmentsForCheckbox?.split(\",\");\r\n let _equipmentResourcesFiltered: string[] = [];\r\n\r\n for (let i = 0; i < equipments?.length!; i++) {\r\n let currentSubcategory = equipments?.[i]!;\r\n for (let j = 0; j < Object.keys(_equipmentNameListByCategoryId).length; j++) {\r\n let currentItem = Object.keys(_equipmentNameListByCategoryId)[j];\r\n if (currentItem === currentSubcategory) {\r\n _equipmentResourcesFiltered.push(currentItem);\r\n }\r\n }\r\n }\r\n\r\n _equipmentResourcesFiltered.forEach((sc: string) => {\r\n _equipmentNameList.push(\r\n ..._equipmentNameListByCategoryId?.[sc]\r\n )\r\n })\r\n\r\n let _equipmentSubcategories = equipmentSubcategories?.equipmentsForInput?.split(\",\");\r\n let _equipmentSubcategoriesFiltered: string[] = [];\r\n\r\n for (const subcategory of _equipmentSubcategories!) {\r\n for (const currentItem of Object.keys(_equipmentNameListByCategoryId)) {\r\n if (currentItem === subcategory) {\r\n _equipmentSubcategoriesFiltered.push(currentItem);\r\n }\r\n }\r\n }\r\n _equipmentSubcategoriesFiltered.forEach((sc: string) => {\r\n _equipmentSubcategoryList.push(\r\n ..._equipmentNameListByCategoryId?.[sc]\r\n )\r\n })\r\n\r\n _subcategories = _equipmentSubcategoryList\r\n ?.map(e => e?.eqSubcategoryDescription?.trim() as string)\r\n }\r\n\r\n if (_equipmentNameList.length > 0) {\r\n setEquipmentNameList(_equipmentNameList.map(eq => eq?.eqName as string));\r\n }\r\n\r\n if (_subcategories.length > 0) {\r\n setSubcategoriesList(_subcategories.filter((sc, i) => _subcategories.indexOf(sc) === i))\r\n }\r\n\r\n // setEquipmentNameListByCategory(_equipmentNameListByCategory);\r\n\r\n }, [equipmentResources, equipmentSubcategories])\r\n\r\n useEffect(() => {\r\n if (data == null || data.equipmentManagementDatas == null || state === {}) return;\r\n\r\n setState(filteredItems(Object.keys(days), equipmentNameList, data.equipmentManagementDatas, equipmentSubcategoriesList));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [data?.equipmentManagementDatas, equipmentNameList, equipmentSubcategoriesList])\r\n\r\n return (\r\n
\r\n {loading && }\r\n {error != null && }\r\n
\r\n
\r\n \"graniterock\"\r\n
Equipment Details Preview
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n {\r\n equipmentNameList.map((eqName, index) => (\r\n
{eqName}
\r\n ))\r\n }\r\n {\r\n equipmentSubcategoriesList.map((eqSubName, i) => (\r\n
{eqSubName}
\r\n ))\r\n }\r\n
\r\n
\r\n \r\n
\r\n {\r\n Object.keys(days).map((day, index) => (\r\n
{moment(parseInt(day)).utc().format(\"MM/DD\")}
\r\n ))\r\n }\r\n
\r\n
\r\n \r\n
setScroll(true)}\r\n >\r\n {\r\n Object.keys(days).map((day, index) => (\r\n
\r\n
\r\n {moment(parseInt(day)).utc().format(\"MM/DD\")}\r\n
\r\n
\r\n {equipmentNameList.map((eqName, i) => (\r\n <>\r\n 1 ? \"Job_Number_Bold\" : \"Job_Number\"}\r\n style={{\r\n backgroundColor: moment(parseInt(day)).utc().days() === 6 || moment(parseInt(day)).utc().days() === 0\r\n ? \"rgba(240,220,200,1)\"\r\n : \"\",\r\n }}\r\n data-name={eqName + i}\r\n >\r\n {state?.[eqName]?.[day]?.[0]}\r\n
\r\n \r\n ))}\r\n {\r\n equipmentSubcategoriesList?.map((subcategoryName, i) => (\r\n <>\r\n \r\n {state?.[subcategoryName]?.[day]\r\n ?.reduce((previousValue, currentValue) => previousValue! as number + currentValue! as number, 0) as number}\r\n
\r\n \r\n ))\r\n }\r\n
\r\n
\r\n ))\r\n }\r\n
\r\n \r\n \r\n \r\n \r\n )\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const EQUIPMENT_SUBCATEGORIES_QUERY = gql`\r\n query equipmentSubcategories {\r\n equipmentSubcategories {\r\n equipmentsForInput\r\n equipmentsForCheckbox\r\n\t }\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const EQUIPMENT_SUBCATEGORIES_FULL_LIST = gql`\r\n query equipmentSubcategoriesFullList {\r\n equipmentSubcategoriesFullList\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const CHANGE_CONTENT_FROM_FILE = gql`\r\n mutation changeContentFromFile($where: [ChangeContentFromFileInput]!) {\r\n changeContentFromFile(where: $where)\r\n }\r\n`;","export enum ItemTypesEquip {\r\n EQUIPMENT = 'EQUIPMENT',\r\n}","import { ReactElement, useRef } from \"react\";\r\nimport { DragSourceMonitor, DropTargetMonitor, useDrag, useDrop, XYCoord } from \"react-dnd\";\r\nimport { ItemTypesEquip } from \"./ItemTypes\";\r\n\r\nexport interface ChangeEvent {\r\n dragSource: DraggableEquipItem;\r\n dropTarget?: DraggableEquipItem;\r\n}\r\n\r\nexport interface DraggableFileProps {\r\n index: number;\r\n hasSubcategoryDescription: boolean;\r\n subcategoryId: string;\r\n subcategoryDescription: string;\r\n accept: ItemTypesEquip;\r\n children(ref: React.RefObject, isDragging: boolean): ReactElement | null;\r\n moveCard: (dragIndex: number, hoverIndex: number) => void;\r\n noPreview?: boolean;\r\n}\r\n\r\nexport interface DraggableEquipItem {\r\n index: number;\r\n subcategoryId: string;\r\n subcategoryDescription: string;\r\n hasSubcategoryDescription: boolean;\r\n type: ItemTypesEquip;\r\n noPreview?: boolean;\r\n}\r\n\r\nexport const DraggableItem: React.FC = ({ index, hasSubcategoryDescription, accept, children, moveCard, subcategoryDescription, subcategoryId, noPreview }) => {\r\n const ref = useRef(null);\r\n const equipItem: DraggableEquipItem = { index, hasSubcategoryDescription, type: accept, subcategoryDescription, subcategoryId, noPreview };\r\n\r\n const [{ isDragging }, drag] = useDrag({\r\n item: equipItem,\r\n\r\n canDrag(monitor: DragSourceMonitor) {\r\n return hasSubcategoryDescription\r\n },\r\n\r\n collect: (monitor: any) => ({\r\n isDragging: monitor.isDragging(),\r\n canDrag: monitor.canDrag()\r\n }),\r\n })\r\n\r\n const [, drop] = useDrop({\r\n accept,\r\n hover(item: DraggableEquipItem, monitor: DropTargetMonitor) {\r\n if (!ref.current) { return }\r\n\r\n const dragIndex = item.index;\r\n const hoverIndex = index;\r\n\r\n // Don't replace items with themselves\r\n if (dragIndex === hoverIndex) { return }\r\n\r\n // Determine rectangle on screen\r\n const hoverBoundingRect = ref.current!.getBoundingClientRect()\r\n\r\n // Get vertical middle\r\n const hoverMiddleY =\r\n (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2\r\n\r\n // Determine mouse position\r\n const clientOffset = monitor.getClientOffset();\r\n\r\n // Get pixels to the top\r\n const hoverClientY = (clientOffset as XYCoord).y - hoverBoundingRect.top;\r\n\r\n // Only perform the move when the mouse has crossed half of the items height\r\n // When dragging downwards, only move when the cursor is below 50%\r\n // When dragging upwards, only move when the cursor is above 50%\r\n\r\n // Dragging downwards\r\n if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {\r\n return\r\n }\r\n\r\n // Dragging upwards\r\n if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {\r\n return\r\n }\r\n\r\n // Time to actually perform the action\r\n moveCard(dragIndex, hoverIndex);\r\n\r\n // Note: we're mutating the monitor item here!\r\n // Generally it's better to avoid mutations,\r\n // but it's good here for the sake of performance\r\n // to avoid expensive index searches.\r\n item.index = hoverIndex;\r\n }\r\n });\r\n\r\n drag(drop(ref));\r\n\r\n return typeof children === \"function\"\r\n ? children(ref, isDragging)\r\n : null;\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const REFRESH_EQUIPMENT_RESOURCES = gql`\r\n mutation refreshEquipmentResources {\r\n refreshEquipmentResources\r\n }\r\n`;","import \"./EquipmentListManagement.css\";\r\nimport React, { FC, useCallback, useContext, useEffect, useState } from \"react\";\r\nimport { useMutation, useQuery } from \"@apollo/react-hooks\";\r\nimport { EQUIPMENT_SUBCATEGORIES_QUERY } from \"../../../graphql/queries/EQUIPMENT_SUBCATEGORIES\";\r\nimport { EQUIPMENT_SUBCATEGORIES_FULL_LIST } from \"../../../graphql/queries/EQUIPMENT_SUBCATEGORIES_FULL_LIST\";\r\nimport { Maybe, Query, RemoteEquipment } from \"../../../graphql/schema-types\";\r\nimport { toMap } from \"../../../utils/toMap\";\r\nimport { CheckBox } from \"../../Form/CheckBox\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\nimport { FullScreenErrorIndicator } from \"../../Modal/ErrorIndicator/FullScreenErrorIndicator\";\r\nimport { FullScreenLoadingIndicator } from \"../../Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../redux/store\";\r\nimport { useImmer } from \"use-immer\";\r\nimport { ModalContext } from \"../../Modal/ModalContext/ModalContext\";\r\nimport { GeneralWarningModal } from \"../../Warnings & errors/GeneralWarningModal/GeneralWarningModal\";\r\nimport { CHANGE_CONTENT_FROM_FILE } from \"../../../graphql/mutations/CHANGE_CONTENT_FROM_FILE\";\r\nimport to from \"await-to-js\";\r\nimport { DraggableItem } from \"./DraggableItem\";\r\nimport { ItemTypesEquip } from \"./ItemTypes\";\r\nimport update from 'immutability-helper';\r\nimport { REFRESH_EQUIPMENT_RESOURCES } from \"../../../graphql/mutations/REFRESH_EQUIPMENT_RESOURCES\";\r\ninterface IEquipmentListManagement {\r\n onClose?(): void;\r\n}\r\n\r\ntype IState = {\r\n subCategoryId: string,\r\n subCategoryDescription: string,\r\n assignByIndividual: boolean | null,\r\n isRed: boolean | null\r\n}\r\n\r\nexport const EquipmentListManagement: FC = (props) => {\r\n const [state, setState] = useImmer([]);\r\n const [newSubcategoryId, setNewSubcategoryId] = useState(\"\");\r\n const [remoteEquipById, setRemoteEquipById] = useState<{ [key: string]: Maybe }>({});\r\n\r\n const { data, loading, error } = useQuery>(EQUIPMENT_SUBCATEGORIES_QUERY, { fetchPolicy: \"no-cache\" });\r\n const { data: equipmentFullList, loading: equipmentFullListLoading, error: equipmentFullListError } = useQuery>(EQUIPMENT_SUBCATEGORIES_FULL_LIST, { fetchPolicy: \"no-cache\" });\r\n\r\n const [changeContentFromFile, { loading: loadingChangeContentFromFile }] = useMutation(CHANGE_CONTENT_FROM_FILE);\r\n const [refreshEquipmentResources, { loading: loadingRefreshEquipmentResources }] = useMutation(REFRESH_EQUIPMENT_RESOURCES);\r\n\r\n const remoteEquip = useSelector((state: RootState) => state.app.remoteEquipmentList);\r\n const modal = useContext(ModalContext);\r\n\r\n useEffect(() => {\r\n document.body.style.overflow = 'hidden'\r\n return () => {\r\n document.body.removeAttribute('style')\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n window.onpopstate = (e: any) => {\r\n props?.onClose?.()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n const res = toMap(remoteEquip ?? [], e => e?.id ?? \"\");\r\n setRemoteEquipById(res);\r\n }, [remoteEquip])\r\n\r\n useEffect(() => {\r\n if (equipmentFullList == null) return;\r\n if (data == null) return;\r\n \r\n const equipList = equipmentFullList.equipmentSubcategoriesFullList.split(\",\");\r\n const equipmentsForCheckbox = data?.equipmentSubcategories?.equipmentsForCheckbox?.split(\",\")\r\n\r\n // the list of subcategory id's came from backend as a list in a string\r\n // after every subcategory id we put comma to separate them\r\n // if the string doesn't include one comma, it means that the list is empty\r\n\r\n if (equipList?.length > 0) {\r\n setState(draft => {\r\n equipList.forEach((e) => {\r\n if(remoteEquipById?.[e]?.description !== undefined){\r\n draft.push({\r\n assignByIndividual: equipmentsForCheckbox?.includes(e) ? true : false,\r\n subCategoryDescription: remoteEquipById?.[e]?.description as string,\r\n subCategoryId: e,\r\n isRed: remoteEquipById?.[e] == null && remoteEquipById?.[e]?.description === \"\" ? true : false\r\n })\r\n }\r\n })\r\n });\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [data, equipmentFullList, remoteEquipById]);\r\n\r\n useEffect(() => {\r\n const subCategoryIdsFromState = state.map(s => s.subCategoryId);\r\n if (subCategoryIdsFromState?.includes(newSubcategoryId)) {\r\n\r\n modal?.openModal?.({\r\n element: { }}\r\n />\r\n });\r\n setNewSubcategoryId(\"\");\r\n }\r\n\r\n if (newSubcategoryId !== \"\" && !subCategoryIdsFromState?.includes(newSubcategoryId)) {\r\n const itemDescription: string | undefined = remoteEquipById?.[newSubcategoryId]?.description?.toString();\r\n\r\n const item: IState = {\r\n assignByIndividual: false,\r\n subCategoryDescription: (itemDescription != null || itemDescription !== \"\") ? itemDescription as string : \"\",\r\n subCategoryId: newSubcategoryId,\r\n isRed: itemDescription == null || itemDescription === \"\" ? true : false\r\n }\r\n\r\n setState(draft => {\r\n draft.push(item);\r\n })\r\n setNewSubcategoryId(\"\");\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [newSubcategoryId, setNewSubcategoryId, remoteEquipById])\r\n\r\n const onAssignByIndividualChange = (index: number, checked: boolean) => {\r\n setState(draft => {\r\n if (draft?.[index] != null) {\r\n draft[index].assignByIndividual = checked;\r\n }\r\n })\r\n }\r\n\r\n const onDeleteCheck = (index: number, subcategoryId: string) => {\r\n modal?.openModal?.({\r\n element: onDeleteChange(index)}\r\n onCancel={() => { }}\r\n />\r\n })\r\n }\r\n\r\n const onDeleteChange = (index: number) => {\r\n setState(draft => {\r\n if (draft?.[index] != null) {\r\n draft.splice(index, 1);\r\n }\r\n })\r\n }\r\n\r\n const onBlurEvent = (value: string) => {\r\n const trimmedValue = value.trim();\r\n if (trimmedValue != null && trimmedValue !== \" \" && trimmedValue.length > 1) {\r\n setNewSubcategoryId(trimmedValue.toUpperCase())\r\n }\r\n }\r\n\r\n const moveCard = useCallback((dragIndex: number, hoverIndex: number) => {\r\n const dragCard = state?.[dragIndex];\r\n\r\n setState(draft => {\r\n return update(draft, {\r\n $splice: [[dragIndex, 1], [hoverIndex, 0, dragCard]],\r\n })\r\n })\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [state])\r\n\r\n const isDisabled = useCallback(() => {\r\n const hasRedItems = state.filter(s => s.isRed === true);\r\n\r\n if (hasRedItems.length > 0) {\r\n return true\r\n }\r\n else {\r\n return false;\r\n }\r\n }, [state])\r\n\r\n const onSubmit = async () => {\r\n const contentForFullList = state\r\n .filter((item, index) => state.indexOf(item) === index)\r\n .map((item) => item.subCategoryId)\r\n .join(',');\r\n const contentForCheckBoxList = state\r\n .filter((item, index) => {\r\n return item.assignByIndividual === true && state.indexOf(item) === index\r\n })\r\n .map(i => i.subCategoryId)\r\n .join(',');\r\n const contentForInputList = state\r\n .filter((item, index) => {\r\n return item.assignByIndividual === false && state.indexOf(item) === index\r\n })\r\n .map(i => i.subCategoryId)\r\n .join(',');\r\n\r\n const [error, response] = await to(changeContentFromFile({\r\n variables: {\r\n where:\r\n [\r\n {\r\n content: contentForFullList,\r\n fileName: 'fullList.txt'\r\n },\r\n {\r\n content: contentForCheckBoxList,\r\n fileName: 'checkboxList.txt'\r\n },\r\n {\r\n content: contentForInputList,\r\n fileName: 'inputList.txt'\r\n },\r\n ]\r\n }\r\n }));\r\n\r\n if (error != null && error.message != null) {\r\n modal?.openModal?.({\r\n element: \r\n })\r\n }\r\n\r\n if (response && error == null) {\r\n modal?.openModal?.({\r\n element: \r\n })\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 3000);\r\n }\r\n }\r\n\r\n const onRefreshEquipCheck = () => {\r\n modal?.openModal?.({\r\n element: onRefreshEquip()}\r\n onCancel={() => { }}\r\n />\r\n })\r\n }\r\n\r\n const onRefreshEquip = async () => {\r\n\r\n const [error, response] = await to(refreshEquipmentResources());\r\n\r\n if (response && error == null) {\r\n modal?.openModal?.({\r\n element: \r\n })\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 3000);\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {(loading || equipmentFullListLoading || loadingChangeContentFromFile || loadingRefreshEquipmentResources) && }\r\n {(error != null || equipmentFullListError != null) && }\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
\r\n props.onClose?.()} />\r\n
\r\n
\r\n
\r\n
Sort Order
\r\n
Subcat ID
\r\n
Subcat Description
\r\n
Assign by individual equipment ID
\r\n
Delete
\r\n
\r\n
\r\n <>\r\n {\r\n state.length > 0 && state?.map((s, index) => (\r\n \r\n {(ref, isDragging) => {\r\n const opacity = isDragging ? 0 : 1;\r\n return (\r\n
\r\n
{index + 1 as number}
\r\n
\r\n {s?.subCategoryId as string}\r\n
\r\n
{s?.subCategoryDescription as string}
\r\n { onAssignByIndividualChange(index, e.target.checked) }}\r\n checked={state?.[index]?.assignByIndividual as boolean || false}\r\n disabled={false}\r\n />\r\n
\r\n onDeleteCheck(index, s.subCategoryId)}\r\n >\r\n Delete\r\n \r\n
\r\n
\r\n )\r\n }}\r\n \r\n ))\r\n }\r\n \r\n
\r\n onRefreshEquipCheck()}\r\n disabled={state.length === 0 ? true : false}>Refresh equipments\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n onSubmit()}\r\n className=\"Button Add_Resources\"\r\n disabled={isDisabled()}\r\n >Save\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\ninterface IAddNewSubcategory {\r\n onBlur(value: string): void;\r\n}\r\n\r\nconst AddNewSubcategory: FC = (props) => {\r\n const onBlur: React.InputHTMLAttributes[\"onBlur\"] = (event) => {\r\n props.onBlur(event.target.value);\r\n event.target.value = \"\";\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}","\r\nimport React, { FC } from \"react\";\r\nimport { IncompleteSuperIntendentPavingCalendarDatas, Maybe } from \"../../../graphql/schema-types\";\r\nimport moment from \"moment\";\r\nimport \"./NotifyIncompleteItems.css\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\n\r\ninterface INotifyIncompleteItems {\r\n incompleteItems: Maybe[];\r\n onClose(): void;\r\n}\r\n\r\nexport const NotifyIncompleteItems: FC = (props) => {\r\n\r\n return (\r\n
\r\n \r\n {\r\n props.incompleteItems?.map((item, index) => (\r\n
On {moment(item?.date).utc().format(\"MM-DD-YYYY\")} Job {item?.jobNumber} has invalid data.
\r\n ))\r\n }\r\n
\r\n )\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const ADD_PAVING_FOREMAN = gql`\r\n mutation addPavingForeman($where: AddPavingForeman!){\r\n addPavingForeman(where: $where)\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const DELETE_PAVING_FOREMAN = gql`\r\n mutation deletePavingForeman($where: DeletePavingForeman!){\r\n deletePavingForeman(where: $where)\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const JOB_INFOS_BY_DELETED_FOREMAN = gql`\r\n query jobInfosByDeletedForeman($where: JobInfosByDeletedForeman!){\r\n jobInfosByDeletedForeman(where: $where) {\r\n uID\r\n jobNumber_Date\r\n searchGSI_JobNumber\r\n tableauGSI_Tableau\r\n date \r\n areaManager\r\n jobName\r\n pmpe\r\n superIntendent\r\n foreman\r\n resourceName\r\n resourceID\r\n resourceType\r\n resourceQTY \r\n description\r\n additionalResourcesComments\r\n locationIndex \r\n pavingForeman\r\n pavingSuperIntendent\r\n jobMap\r\n }\r\n }\r\n`;\r\n","import { useMutation } from \"@apollo/react-hooks\";\r\nimport to from \"await-to-js\";\r\nimport React, { FC, useContext, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { DELETE_PAVING_FOREMAN } from \"../../../../graphql/mutations/DELETE_PAVING_FOREMAN\";\r\nimport { ChangeUserJobInfo, JobInfo, Maybe, PavingForeman } from \"../../../../graphql/schema-types\";\r\nimport { updateForemanForItemsFromCalendar } from \"../../../../redux/appSlice\";\r\nimport { CloseButton } from \"../../../Form/CloseButton\";\r\nimport { ModalContext } from \"../../../Modal/ModalContext/ModalContext\";\r\nimport { GeneralWarningModal } from \"../../../Warnings & errors/GeneralWarningModal/GeneralWarningModal\";\r\nimport \"./ChangeUser.css\";\r\n\r\ninterface IChangeUser {\r\n pavingForemans: Maybe[] | undefined\r\n userToDelete: string;\r\n userIDToDelete: string;\r\n onClose?(): void;\r\n jobInfosByDeletedUser: JobInfo[];\r\n refetch?(): void;\r\n}\r\n\r\nexport const ChangeUser: FC = (props) => {\r\n\r\n const [state, setState] = useState(\"\");\r\n const modal = useContext(ModalContext);\r\n\r\n const [deletePavingForeman] = useMutation(DELETE_PAVING_FOREMAN, { onCompleted: props.refetch });\r\n\r\n const dispatch = useDispatch();\r\n\r\n const onChangeUserApply = () => {\r\n modal?.openModal?.({\r\n element: onSave()}\r\n onCancel={() => { }}\r\n yesNoButtons={true}\r\n />\r\n });\r\n }\r\n\r\n const onSave = async () => {\r\n if (state == null) return;\r\n\r\n const jobInfosItemsToUpdate: Maybe[] = [];\r\n props.jobInfosByDeletedUser.forEach((jobInfo: JobInfo) => {\r\n delete jobInfo[\"__typename\"];\r\n jobInfosItemsToUpdate.push({\r\n ...jobInfo,\r\n pavingForeman: state as string,\r\n });\r\n });\r\n\r\n dispatch(updateForemanForItemsFromCalendar({\r\n foremanNameForUpdate: state,\r\n foremanToDelete: props.userToDelete\r\n }))\r\n const [error, response] = await to(deletePavingForeman({\r\n variables: { where: { foremanName: state as string, uID: props.userIDToDelete as string, jobInfosByDeletedUser: jobInfosItemsToUpdate } }\r\n }))\r\n\r\n if (response) {\r\n props.onClose?.();\r\n }\r\n\r\n if (error != null) {\r\n modal?.openModal?.({\r\n element: (\r\n \r\n ),\r\n });\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
Delete User {props.userToDelete}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n { onChangeUserApply() }}\r\n className=\"Change_User_Button \"\r\n disabled={state == null}\r\n title={state == null ? \"You have to select a user from dropdown\" : \"Change User\"}>\r\n Change User\r\n \r\n
\r\n
\r\n )\r\n}","import React, { FC, useContext, useEffect, useState } from \"react\";\r\nimport { useApolloClient, useMutation, useQuery } from \"@apollo/react-hooks\";\r\nimport { Maybe, PavingForeman, Query } from \"../../../graphql/schema-types\";\r\nimport { PAVING_FOREMANS_QUERY } from \"../../../graphql/queries/PAVING_FOREMANS_QUERY\";\r\nimport \"./TeamManagement.css\"\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../redux/store\";\r\nimport { FullScreenLoadingIndicator } from \"../../Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\nimport { FullScreenErrorIndicator } from \"../../Modal/ErrorIndicator/FullScreenErrorIndicator\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\nimport { ADD_PAVING_FOREMAN } from \"../../../graphql/mutations/ADD_PAVING_FOREMAN\";\r\nimport to from \"await-to-js\";\r\nimport { GeneralWarningModal } from \"../../Warnings & errors/GeneralWarningModal/GeneralWarningModal\";\r\nimport { ModalContext } from \"../../Modal/ModalContext/ModalContext\";\r\nimport { DELETE_PAVING_FOREMAN } from \"../../../graphql/mutations/DELETE_PAVING_FOREMAN\";\r\nimport { JOB_INFOS_BY_DELETED_FOREMAN } from \"../../../graphql/queries/JOB_INFOS_BY_DELETED_FOREMAN\";\r\nimport moment from \"moment\";\r\nimport { ChangeUser } from \"./ChangeUser/ChangeUser\";\r\n\r\ninterface ITeamManagement {\r\n onClose?(): void;\r\n}\r\n\r\n// This component loads the modal from button \"Crew Management\" from Paving Planner side\r\nexport const TeamManagement: FC = (props) => {\r\n const [state, setState] = useState(\"\");\r\n const [buttonStatus, setButtonStatus] = useState(true);\r\n const { loading, error, data, refetch } = useQuery>(PAVING_FOREMANS_QUERY);\r\n\r\n let isGeneral = useSelector((state: RootState) => state.app?.pavingModuleUser.isInGeneralPavingSupers);\r\n const [addPavingForeman] = useMutation(ADD_PAVING_FOREMAN, { onCompleted: refetch });\r\n const [deletePavingForeman] = useMutation(DELETE_PAVING_FOREMAN, { onCompleted: refetch });\r\n\r\n const modal = useContext(ModalContext);\r\n const client = useApolloClient();\r\n\r\n const pavingForemanNames = data?.pavingForemans.map(f => f?.username);\r\n\r\n useEffect(() => {\r\n document.body.style.overflow = 'hidden'\r\n return () => {\r\n document.body.removeAttribute('style')\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (state === \"\" || state.trim() === \"\" || state.trim().length < 3 || pavingForemanNames?.includes(state)) {\r\n setButtonStatus(true)\r\n }\r\n else {\r\n setButtonStatus(false)\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [state, setState])\r\n\r\n const formatInput = (e: string) => {\r\n const value = e;\r\n setState(value.trim());\r\n }\r\n\r\n const onSaveUser = async () => {\r\n const [error, response] = await to(\r\n addPavingForeman({\r\n variables: {\r\n where: { username: state }\r\n }\r\n })\r\n )\r\n\r\n if (error != null) {\r\n modal?.openModal?.({\r\n element: (\r\n \r\n ),\r\n });\r\n }\r\n\r\n if (response) {\r\n setState(\"\");\r\n }\r\n }\r\n\r\n const onDelete = async (foreman: Maybe) => {\r\n const _currentDay = moment.utc().unix() * 1000;\r\n\r\n const [, responseJobInfos] = await to(\r\n client.query({\r\n query: JOB_INFOS_BY_DELETED_FOREMAN, variables: { where: { foremanName: foreman?.username, startDate: _currentDay } }\r\n })\r\n )\r\n\r\n // check if there are paving resources added into DB where the selected foreman to delete is setted\r\n // if the length > 0, then we need to change the foreman with another for all paving resources\r\n // otherwise you can't delete the foreman\r\n if (responseJobInfos?.data.jobInfosByDeletedForeman.length > 0) {\r\n modal?.openModal?.({\r\n element: (\r\n refetch()}\r\n />\r\n ),\r\n });\r\n }\r\n else {\r\n const [error, response] = await to(\r\n deletePavingForeman({\r\n variables: { where: { foremanName: foreman?.username as string, uID: foreman?.uID as string, jobInfosByDeletedUser: [] } }\r\n })\r\n )\r\n\r\n if (error != null) {\r\n modal?.openModal?.({\r\n element: (\r\n \r\n ),\r\n });\r\n }\r\n\r\n if (response) {\r\n refetch();\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {loading && }\r\n {error != null && }\r\n
\r\n
\r\n \"graniterock\"\r\n
Crew Management
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {\r\n const value = e.target.value;\r\n setState(value);\r\n }}\r\n onBlur={(e) => formatInput(e.target.value)}\r\n />\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Name
\r\n
Actions
\r\n
\r\n
\r\n {\r\n data?.pavingForemans?.map((foreman, index) => (\r\n
\r\n
{foreman?.username}
\r\n
\r\n {\r\n \r\n }\r\n
\r\n
\r\n ))\r\n }\r\n
\r\n
\r\n
\r\n )\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const ADD_PAVING_SUPER = gql`\r\n mutation addPavingSuper($where: AddPavingSuperInput!){\r\n addPavingSuper(where: $where)\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const CHANGE_USER_MUTATION = gql`\r\n mutation changeUser($where: ChangeUserInput!){\r\n changeUser(where: $where)\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const JOB_INFOS_BY_DISABLED_USER = gql`\r\n query jobInfosByDisabledUser($disabledUserName: String!){\r\n jobInfosByDisabledUser(disabledUserName: $disabledUserName) {\r\n uID\r\n jobNumber_Date\r\n searchGSI_JobNumber\r\n tableauGSI_Tableau\r\n date \r\n areaManager\r\n jobName\r\n pmpe\r\n superIntendent\r\n foreman\r\n resourceName\r\n resourceID\r\n resourceType\r\n resourceQTY \r\n description\r\n additionalResourcesComments\r\n locationIndex \r\n pavingForeman\r\n pavingSuperIntendent\r\n jobMap\r\n }\r\n }\r\n`;\r\n","import { useMutation } from \"@apollo/react-hooks\";\r\nimport to from \"await-to-js\";\r\nimport React, { FC, useContext, useState } from \"react\";\r\nimport { CHANGE_USER_MUTATION } from \"../../../../graphql/mutations/CHANGE_USER_MUTATION\";\r\nimport { JobInfo, Maybe, PavingSupers } from \"../../../../graphql/schema-types\";\r\nimport { CloseButton } from \"../../../Form/CloseButton\";\r\nimport { ModalContext } from \"../../../Modal/ModalContext/ModalContext\";\r\nimport { GeneralWarningModal } from \"../../../Warnings & errors/GeneralWarningModal/GeneralWarningModal\";\r\nimport \"./DisableUser.css\";\r\n\r\ninterface IDisableUserProps {\r\n onClose?(): void;\r\n activeUsers: Maybe[] | undefined\r\n userNameWeWantToDisable: string;\r\n userEmailWeWantToDisable: string\r\n refetch(): void;\r\n jobInfosByDisabledUser: JobInfo[]\r\n}\r\n\r\n\r\nexport const DisableUser: FC = (props) => {\r\n\r\n const modal = useContext(ModalContext);\r\n\r\n const [selectedUser, setUser] = useState(\"\");\r\n\r\n const [changeUser] = useMutation(CHANGE_USER_MUTATION, { onCompleted: props.refetch });\r\n\r\n const onUserSelect = (e: React.ChangeEvent) => {\r\n setUser(e.target.value);\r\n }\r\n\r\n const onChangeUserApply = () => {\r\n modal?.openModal?.({\r\n element: onChangeUser()}\r\n onCancel={() => { }}\r\n yesNoButtons={true}\r\n />\r\n });\r\n }\r\n\r\n const onChangeUser = async () => {\r\n if (selectedUser !== \"\") {\r\n await to(changeUser({ variables: { where: { disabledUser: props.userNameWeWantToDisable, disabledUserEmail: props.userEmailWeWantToDisable, updateUser: selectedUser, disabled: true, jobInfosByDisabledUser: props.jobInfosByDisabledUser } } }));\r\n props.onClose?.();\r\n }\r\n else {\r\n modal?.openModal?.({\r\n element: (\r\n \r\n ),\r\n });\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \"graniterock\"\r\n
Disable User {props.userNameWeWantToDisable}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n )\r\n}","import { useApolloClient, useMutation, useQuery } from \"@apollo/react-hooks\";\r\nimport to from \"await-to-js\";\r\nimport React, { FC, useContext, useEffect, useState } from \"react\"\r\nimport { ADD_PAVING_SUPER } from \"../../../graphql/mutations/ADD_PAVING_SUPER\";\r\nimport { CHANGE_USER_MUTATION } from \"../../../graphql/mutations/CHANGE_USER_MUTATION\";\r\nimport { JOB_INFOS_BY_DISABLED_USER } from \"../../../graphql/queries/JOB_INFOS_BY_DISABLED_USER\";\r\nimport { PAVING_SUPERS_QUERY } from \"../../../graphql/queries/PAVING_SUPERS_QUERY\";\r\nimport { Query } from \"../../../graphql/schema-types\";\r\nimport { CloseButton } from \"../../Form/CloseButton\";\r\nimport { FullScreenErrorIndicator } from \"../../Modal/ErrorIndicator/FullScreenErrorIndicator\";\r\nimport { FullScreenLoadingIndicator } from \"../../Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\nimport { ModalContext } from \"../../Modal/ModalContext/ModalContext\";\r\nimport { GeneralWarningModal } from \"../../Warnings & errors/GeneralWarningModal/GeneralWarningModal\";\r\nimport { DisableUser } from \"./DisableUser/DisableUser\";\r\nimport \"./UsersManagement.css\";\r\n\r\ninterface IUsersManagementProps {\r\n onClose?(): void;\r\n}\r\n\r\nexport const UsersManagement: FC = (props) => {\r\n const modal = useContext(ModalContext);\r\n\r\n const [user, setUser] = useState({\r\n email: \"\",\r\n name: \"\"\r\n });\r\n\r\n const mailFormat = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-]/;\r\n\r\n const { data, loading, error, refetch } = useQuery>(PAVING_SUPERS_QUERY);\r\n\r\n const [addPavingSuper] = useMutation(ADD_PAVING_SUPER, { onCompleted: refetch });\r\n\r\n const [changeUser] = useMutation(CHANGE_USER_MUTATION, { onCompleted: refetch });\r\n\r\n const client = useApolloClient();\r\n\r\n useEffect(() => {\r\n document.body.style.overflow = 'hidden'\r\n return () => {\r\n document.body.removeAttribute('style')\r\n }\r\n }, [])\r\n\r\n const pavingSuperEmail = data != null ? data?.pavingSupers.map(ps => ps?.email) : [];\r\n\r\n const onAddUser = async () => {\r\n if (user.name !== \"\" && user.email !== \"\" && pavingSuperEmail?.includes(user.email as string) === false && mailFormat.test(user.email)) {\r\n const [errorAddPavingSuper,] = await to(\r\n addPavingSuper({\r\n variables: {\r\n where: {\r\n email: user.email,\r\n name: user.name\r\n }\r\n }\r\n })\r\n )\r\n if (errorAddPavingSuper != null) {\r\n modal?.openModal?.({\r\n element: (\r\n \r\n ),\r\n });\r\n }\r\n }\r\n else if (pavingSuperEmail?.includes(user.email as string) === true) {\r\n modal?.openModal?.({\r\n element: (\r\n \r\n ),\r\n });\r\n }\r\n else {\r\n modal?.openModal?.({\r\n element: (\r\n \r\n ),\r\n });\r\n }\r\n }\r\n\r\n const onDisableUser = async (currentUser: string, currentUserEmail: string) => {\r\n const [, response] = await to(\r\n client.query({\r\n query: JOB_INFOS_BY_DISABLED_USER, variables: { disabledUserName: currentUser }\r\n })\r\n )\r\n if (response?.data.jobInfosByDisabledUser.length > 0) {\r\n modal?.openModal?.({\r\n element: (\r\n ps?.disabled === false)}\r\n userNameWeWantToDisable={currentUser}\r\n userEmailWeWantToDisable={currentUserEmail}\r\n refetch={() => refetch()}\r\n jobInfosByDisabledUser={response?.data.jobInfosByDisabledUser}\r\n />\r\n ),\r\n });\r\n }\r\n else {\r\n await to(changeUser({ variables: { where: { disabledUser: currentUser, disabledUserEmail: currentUserEmail, updateUser: \"\", disabled: true, jobInfosByDisabledUser: [] } } }));\r\n }\r\n }\r\n\r\n const onEnableUser = async (currentUser: string, currentUserEmail: string) => {\r\n if (currentUser == null || currentUser === \"\" || currentUserEmail == null || currentUserEmail === \"\") return;\r\n await to(changeUser({ variables: { where: { disabledUser: currentUser, disabledUserEmail: currentUserEmail, updateUser: \"\", disabled: false, jobInfosByDisabledUser: [] } } }));\r\n }\r\n\r\n const onChangeEmail = (email: string) => {\r\n const _name = email.split(\"@\")[0].toUpperCase();\r\n const name = _name.slice(0, 1) + \" \" + _name.slice(1);\r\n setUser({ email, name })\r\n }\r\n\r\n\r\n return (\r\n
\r\n {loading && }\r\n {error != null && }\r\n
\r\n
\r\n \"graniterock\"\r\n
Users Management
\r\n
\r\n \r\n
\r\n
\r\n
\r\n { onChangeEmail(e.target.value) }}\r\n />\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Name
\r\n
Email
\r\n
Actions
\r\n
\r\n
\r\n {\r\n data?.pavingSupers.map((ps, index) => (\r\n
\r\n
{ps?.name}
\r\n
{ps?.email}
\r\n
\r\n {\r\n ps?.disabled === 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}","import { useMutation } from \"@apollo/react-hooks\";\r\nimport to from \"await-to-js\";\r\nimport React, { FC, useContext, useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { POST_TO_SNS } from \"../../../graphql/mutations/POST_TO_SNS\";\r\nimport { RootState } from \"../../../redux/store\";\r\nimport { AddResources } from \"../../AddResources/AddResources\";\r\nimport { FullScreenLoadingIndicator } from \"../../Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\nimport { ModalContext } from \"../../Modal/ModalContext/ModalContext\";\r\nimport { GeneralWarningModal } from \"../../Warnings & errors/GeneralWarningModal/GeneralWarningModal\";\r\nimport { AuditTrail } from \"../AuditTrail/AuditTrail\";\r\nimport { EquipmentDetailsWindow } from \"../EquipmentDetailsWindow/EquipmentDetailsWindow\";\r\nimport { EquipmentListManagement } from \"../EquipmentListManagement/EquipmentListManagement\";\r\nimport { NotifyIncompleteItems } from \"../NotifyIncompleteItems/NotifyIncompleteItems\";\r\nimport { TeamManagement } from \"../TeamManagement/TeamManagement\";\r\nimport { UsersManagement } from \"../UsersManagement/UsersManagement\";\r\nimport \"./SideBar.css\";\r\nimport { SelectAmPm } from \"../../SelectAmPm/SelectAmPm\";\r\n\r\ninterface ISideBarProps {\r\n}\r\n\r\nexport const SideBar: FC = (props) => {\r\n\r\n const [xPosition, setXPosition] = useState(-200);\r\n const [listVisibillity, setListVisibillity] = useState(true);\r\n\r\n const history = useHistory();\r\n const modal = useContext(ModalContext);\r\n\r\n const isCurrentUserGeneral = useSelector((state: RootState) => state.app?.pavingModuleUser.isInGeneralPavingSupers);\r\n const incompleteItems = useSelector((state: RootState) => state.app?.pavingModuleIncompleteItems);\r\n\r\n const [postToSns, { loading }] = useMutation(POST_TO_SNS);\r\n\r\n useEffect(() => {\r\n setXPosition(0);\r\n }, [])\r\n\r\n const toggleSideBar = () => {\r\n setXPosition(-200);\r\n\r\n if (xPosition < 0) {\r\n setXPosition(0);\r\n }\r\n }\r\n\r\n const onLogout = () => {\r\n history.push({\r\n pathname: '/logout',\r\n state: {\r\n from: \"/logout\"\r\n }\r\n })\r\n }\r\n\r\n const onUserManagementClick = () => {\r\n modal?.openModal?.({\r\n element: (\r\n \r\n ),\r\n });\r\n }\r\n\r\n const onEquipmentDetailsClick = () => {\r\n modal?.openModal?.({\r\n element: (\r\n \r\n ),\r\n });\r\n }\r\n\r\n const onTeamManagementClick = () => {\r\n modal?.openModal?.({\r\n element: (\r\n \r\n ),\r\n });\r\n }\r\n\r\n const onAuditTrailClick = () => {\r\n modal?.openModal?.({\r\n element: (\r\n \r\n ),\r\n });\r\n }\r\n\r\n const onNotificationsBubbleClick = () => {\r\n if (listVisibillity === false) {\r\n setListVisibillity(true)\r\n }\r\n else {\r\n setListVisibillity(false)\r\n }\r\n }\r\n\r\n const onEquipmentListManagementClick = () => {\r\n modal?.openModal?.({\r\n element: (\r\n \r\n ),\r\n });\r\n }\r\n\r\n const onPushPavingScheduleClick = async () => {\r\n const [error, respose] = await to(postToSns());\r\n\r\n if (error?.message != null) {\r\n modal?.openModal?.({\r\n element: (\r\n \r\n ),\r\n });\r\n }\r\n\r\n if (respose != null) {\r\n modal?.openModal?.({\r\n element: (\r\n \r\n ),\r\n });\r\n }\r\n }\r\n\r\n const onCalendarModule = () => {\r\n history.push({\r\n pathname: '/calendar',\r\n state: {\r\n from: \"/calendar\"\r\n }\r\n })\r\n }\r\n\r\n const onDayPreviewModule = () => {\r\n history.push({\r\n pathname: '/daypreview',\r\n state: {\r\n from: \"/daypreview\"\r\n }\r\n })\r\n }\r\n\r\n const onHistoryPreview = () => {\r\n history.push({\r\n pathname: '/history',\r\n state: {\r\n from: \"/history\"\r\n }\r\n })\r\n }\r\n\r\n const openManageResources = () => {\r\n modal?.openModal?.({\r\n element: (\r\n \r\n ),\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n {loading && }\r\n \r\n toggleSideBar()}\r\n style={{\r\n transform: `translate(${200}px, 20vh)`\r\n }}>\r\n {\r\n xPosition === 0\r\n ? \r\n : \r\n }\r\n\r\n \r\n
\r\n \"graniterock\"\r\n
\r\n
\r\n
\r\n
\r\n onEquipmentListManagementClick()}\r\n disabled={!isCurrentUserGeneral as boolean}>\r\n \r\n \r\n \r\n \r\n
{incompleteItems.length}
\r\n \r\n
\r\n {\r\n (listVisibillity === true && incompleteItems.length > 0)\r\n ? setListVisibillity(false)} />\r\n : null\r\n }\r\n \r\n Users Management\r\n \r\n \r\n \r\n \r\n \r\n \r\n Push Paving Schedule\r\n \r\n
\r\n
\r\n {\r\n history.location.pathname === \"/calendar\"\r\n ? \r\n : history.location.pathname === \"/daypreview\" ? : null\r\n }\r\n {\r\n history.location.pathname === \"/history\"\r\n ? <>\r\n \r\n \r\n : null\r\n }\r\n {\r\n history.location.pathname === \"/calendar\" || history.location.pathname === \"/daypreview\"\r\n ? \r\n : null\r\n }\r\n {\r\n history.location.pathname === \"/calendar\" || history.location.pathname === \"/daypreview\"\r\n ? \r\n : null\r\n }\r\n
\r\n \r\n
\r\n \r\n \r\n )\r\n}","import gql from \"graphql-tag\";\r\n\r\nexport const EQUIPMENT_RESOURCES_QUERY = gql`\r\n query equipmentResources {\r\n equipmentResources {\r\n eqID\r\n eqName\r\n eqSubcategoryDescription\r\n eqSubcategoryID\r\n\t }\r\n }\r\n`;","import gql from \"graphql-tag\";\r\n\r\nexport const GET_REMOTE_EQUIPMENT = gql`\r\n query getRemoteEquipment {\r\n getRemoteEquipment {\r\n id\r\n description\r\n }\r\n }\r\n`;","import React, { FC, CSSProperties, useEffect, useRef, useReducer, ReactNode } from \"react\";\r\nimport flatpickr from \"flatpickr\";\r\nimport { Instance } from \"flatpickr/dist/types/instance\";\r\nimport moment from \"moment\";\r\nimport \"flatpickr/dist/themes/material_green.css\";\r\n\r\n\r\nexport interface ISelectRangeOfDatesProps {\r\n currentDates: string[] | null | undefined;\r\n /**\r\n * Fires only when the picker changes the date\r\n * @param date number\r\n */\r\n onPickerChange?(dates: string[]): void;\r\n containerStyle?: CSSProperties;\r\n children?(state: IState): ReactNode;\r\n dates?: { [date: string]: boolean };\r\n minDate?: number | undefined;\r\n maxDate?: number | undefined;\r\n}\r\n\r\ninterface IState {\r\n currentDate: string | null;\r\n dates: string[] | null;\r\n visible: boolean;\r\n previousAction?: IAction;\r\n}\r\n\r\nenum ActionTypes {\r\n SET_PICKER_DATES = \"SET_PICKER_DATE\",\r\n SET_PROPS_DATES = \"SET_PROPS_DATE\",\r\n SET_VISIBILITY = \"SET_VISIBILITY\"\r\n}\r\n\r\ninterface IAction {\r\n type: ActionTypes;\r\n payload?: T;\r\n}\r\n\r\nconst getInitialState = (): IState => ({\r\n dates: null,\r\n currentDate: null,\r\n visible: false,\r\n});\r\n\r\nconst getDateFromSelectedDates = (date: Date) => {\r\n let _date: Date;\r\n if (date == null) {\r\n _date = moment().toDate();\r\n } else {\r\n _date = date;\r\n }\r\n return _date\r\n}\r\n\r\nconst mainReducer = (state: IState, action: IAction): IState => {\r\n switch (action.type) {\r\n\r\n case ActionTypes.SET_PICKER_DATES: {\r\n const dates = action.payload as Date[];\r\n let _dates: string[] = [];\r\n\r\n dates.forEach((date) => {\r\n const d = getDateFromSelectedDates(date);\r\n const _date = moment(d).format(\"YYYY.MM.DD\")\r\n _dates.push(_date);\r\n })\r\n\r\n return ({\r\n ...state,\r\n dates: _dates,\r\n });\r\n }\r\n\r\n case ActionTypes.SET_PROPS_DATES: {\r\n let dates: string[] = action.payload;\r\n\r\n return ({\r\n ...state,\r\n dates,\r\n });\r\n }\r\n\r\n case ActionTypes.SET_VISIBILITY: {\r\n const visible = action.payload as boolean;\r\n return ({\r\n ...state,\r\n visible,\r\n });\r\n }\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return state;\r\n}\r\n\r\nconst reducer = (state: IState, action: IAction): IState => {\r\n return ({\r\n ...mainReducer(state, action),\r\n previousAction: action,\r\n });\r\n}\r\n\r\nexport const SelectRangeOfDates: FC = props => {\r\n const [state, dispatch] = useReducer(reducer, getInitialState())\r\n\r\n const fp = useRef(null);\r\n const elem = useRef(null);\r\n\r\n // on props change, the instance should reflect that\r\n useEffect(() => {\r\n if (props.currentDates == null) return;\r\n dispatch({ type: ActionTypes.SET_PROPS_DATES, payload: props.currentDates });\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n fp.current != null\r\n ? fp.current.setDate(\r\n props.currentDates.map(date => moment(date, \"YYYY.MM.DD\").toDate())\r\n )\r\n : null;\r\n }, [props.currentDates])\r\n\r\n // destroy picker on state.visible === false\r\n useEffect(() => {\r\n if (state.visible) return;\r\n if (fp.current == null) return;\r\n destroy();\r\n }, [state.visible]);\r\n\r\n\r\n const onWheel = useRef(() => {\r\n dispatch({ type: ActionTypes.SET_VISIBILITY, payload: false });\r\n });\r\n\r\n const destroy = () => {\r\n document.removeEventListener(\"wheel\", onWheel.current);\r\n if (fp.current == null) return;\r\n fp.current.close();\r\n fp.current.destroy();\r\n (fp.current as any) = null;\r\n };\r\n\r\n useEffect(() => {\r\n return () => {\r\n destroy();\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const onDayCreate = (dObj: any, dStr: any, fp: any, dayElem: HTMLElement & any) => {\r\n dayElem.innerHTML = `${dayElem.innerHTML}`\r\n }\r\n\r\n useEffect(() => {\r\n if (fp.current == null) return;\r\n fp.current.set(\"onDayCreate\", onDayCreate)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.currentDates])\r\n\r\n const create = () => {\r\n if (elem.current == null) return;\r\n if (fp.current != null) return;\r\n (fp.current as any) = flatpickr(elem.current, {\r\n onChange(selectedDates, dateStr, instance) {\r\n dispatch({ type: ActionTypes.SET_PICKER_DATES, payload: selectedDates });\r\n\r\n props.onPickerChange?.(selectedDates.map(date => moment(date).format(\"YYYY.MM.DD\")));\r\n },\r\n onReady(selectedDates, dateStr, instance) {\r\n instance.open();\r\n },\r\n onOpen(selectedDates, dateStr, instance) {\r\n dispatch({ type: ActionTypes.SET_VISIBILITY, payload: true });\r\n },\r\n onClose(selectedDates, dateStr, instance) {\r\n dispatch({ type: ActionTypes.SET_VISIBILITY, payload: false });\r\n },\r\n disableMobile: true,\r\n showMonths: 1,\r\n onDayCreate,\r\n dateFormat: \"d m Y\",\r\n mode: \"range\",\r\n minDate: (moment.utc(moment().startOf('day').subtract(1, \"year\").format(\"YYYY-MM-DD\")).unix()) * 1000,\r\n maxDate: ((moment.utc(moment().startOf('day').format(\"YYYY-MM-DD\")).unix()) * 1000),\r\n });\r\n document.addEventListener(\"wheel\", onWheel.current);\r\n if (props.currentDates != null) {\r\n fp.current!.setDate(\r\n props.currentDates.map(date => moment(date, \"YYYY.MM.DD\").toDate())\r\n );\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n Select Days\r\n
\r\n );\r\n}","import { useQuery } from \"@apollo/react-hooks\";\r\nimport React from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { EQUIPMENT_MANAGEMENT_DATAS_QUERY } from \"../../graphql/queries/EQUIPMENT_MANAGEMENT_DATAS_QUERY\";\r\nimport { EQUIPMENT_RESOURCES_QUERY } from \"../../graphql/queries/EQUIPMENT_RESOURCES_QUERY\";\r\nimport { EQUIPMENT_SUBCATEGORIES_QUERY } from \"../../graphql/queries/EQUIPMENT_SUBCATEGORIES\";\r\nimport { GET_REMOTE_EQUIPMENT } from \"../../graphql/queries/GET_REMOTE_EQUIPMENT\";\r\nimport { MATERIAL_DATAS_QUERY } from \"../../graphql/queries/MATERIAL_DATAS_QUERY\";\r\nimport { TRUCKING_DATAS_QUERY } from \"../../graphql/queries/TRUCKING_DATAS_QUERY\";\r\nimport { Query } from \"../../graphql/schema-types\";\r\nimport { addEquipmentResources, addEquipmentSubcategories, addEquipmentToPavingModule, addRemoteEquipmentList, addTruckingAndMaterialDatas, initPavingModule } from \"../../redux/appSlice\";\r\nimport { RootState } from \"../../redux/store\";\r\nimport { FullScreenErrorIndicator } from \"../Modal/ErrorIndicator/FullScreenErrorIndicator\";\r\n\r\nexport const InitPavingModule = () => {\r\n const dispatch = useDispatch();\r\n\r\n const items = useSelector((state: RootState) => state.app?.pavingModule);\r\n const daysFromState: string[] = Object.keys(items);\r\n const pavingModuleUser = useSelector((state: RootState) => state.app?.pavingModuleUser);\r\n\r\n const { data: dataEquip, loading: loadingEquip, error: errorEquip } = useQuery>(EQUIPMENT_RESOURCES_QUERY);\r\n\r\n const { data: equipmentManagement, loading: loadingEquipmentManagement, error: errorEquipmentManagement } = useQuery>(EQUIPMENT_MANAGEMENT_DATAS_QUERY, {\r\n variables: {\r\n where: {\r\n startDate: parseInt(daysFromState[0]),\r\n endDate: parseInt(daysFromState[daysFromState.length - 1]),\r\n }\r\n },\r\n skip: Object.keys(items).length === 0\r\n });\r\n\r\n const { data: trucking } = useQuery>(TRUCKING_DATAS_QUERY);\r\n const { data: materials } = useQuery>(MATERIAL_DATAS_QUERY, { fetchPolicy: \"no-cache\" });\r\n\r\n const { data: equipmentSubcategories, loading: loadingSubcategories, error: errorSubcategories } = useQuery>(EQUIPMENT_SUBCATEGORIES_QUERY, {\r\n fetchPolicy: \"no-cache\"\r\n });\r\n\r\n const { data: remoteEquipment, loading: remoteEquipmentLoading, error: remoteEquipmentError } = useQuery>(GET_REMOTE_EQUIPMENT);\r\n\r\n useEffect(() => {\r\n dispatch(initPavingModule({}))\r\n }, [dispatch])\r\n\r\n useEffect(() => {\r\n if (loadingEquip || dataEquip == null || dataEquip.equipmentResources == null || loadingEquipmentManagement || equipmentManagement == null || loadingSubcategories || equipmentSubcategories == null || equipmentSubcategories.equipmentSubcategories == null || remoteEquipment == null || remoteEquipmentLoading == null) { return }\r\n\r\n dispatch(addEquipmentResources({ equipmentResources: dataEquip.equipmentResources }));\r\n dispatch(addEquipmentSubcategories({\r\n equipmentsForCheckbox: equipmentSubcategories?.equipmentSubcategories.equipmentsForCheckbox,\r\n equipmentsForInput: equipmentSubcategories?.equipmentSubcategories.equipmentsForInput\r\n }))\r\n dispatch(addEquipmentToPavingModule({ equipmentManagementResources: equipmentManagement.equipmentManagementDatas }))\r\n dispatch(addTruckingAndMaterialDatas({ truckingDatas: trucking?.truckingDatas, materialDatas: materials?.materialDatas }))\r\n\r\n dispatch(addRemoteEquipmentList({ list: remoteEquipment.getRemoteEquipment }));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [dispatch, pavingModuleUser, loadingEquip, equipmentManagement, equipmentSubcategories, remoteEquipment])\r\n\r\n return (\r\n <>\r\n {(errorEquip != null || errorEquipmentManagement != null || errorSubcategories != null || remoteEquipmentError != null) && }\r\n \r\n );\r\n}","import React, { FC } from \"react\";\r\nimport { Maybe, SuperIntendentPavingCalendarDatas } from \"../../../graphql/schema-types\";\r\nimport \"./Row.css\";\r\n\r\ninterface ISheetRow {\r\n item?: Maybe;\r\n}\r\nexport const Row: FC = (props) => {\r\n const { item } = props;\r\n\r\n return (\r\n
\r\n
{item?.jobNumber as number}
\r\n
{item?.jobName as string}
\r\n
{item?.pmpe}
\r\n
{item?.shift as string}
\r\n
{item?.pavingSuperIntendent as string}
\r\n
{item?.pavingForeman as string}
\r\n
{item?.tonnage as number}
\r\n
{item?.tph as number}
\r\n
{item?.material as string}
\r\n
{item?.mixSubmital as string}
\r\n
{item?.plant as string}
\r\n
{item?.loadOutTime}
\r\n
{item?.mixDesignApproval as string}
\r\n
{item?.rtsSupport as string}
\r\n
{item?.bookTruckVendor as string}
\r\n
{item?.broker as string}
\r\n
{item?.typeOfTrucks as string}
\r\n
{item?.nrOfTrucks as number}
\r\n
{item?.uts as string}
\r\n
{item?.extraWork as string}
\r\n
{item?.crewMakeOp as number}
\r\n
{item?.crewMakeLab as number}
\r\n
\r\n
{item?.grinder4ft as number}
\r\n
{item?.grinder6ft as number}
\r\n
{item?.grinder7ft as number}
\r\n
{item?.grinder12ft as number}
\r\n
\r\n
\r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport \"./FullDayPreviewHistory.css\";\r\nimport { SelectRangeOfDates } from \"../SelectRangeOfDates/SelectRangeOfDates\";\r\nimport moment from \"moment\";\r\nimport { useQuery } from \"@apollo/react-hooks\";\r\nimport { SUPER_INTENDENT_PAVING_CALENDAR_DATAS_QUERY } from \"../../graphql/queries/SUPER_INTENDENT_PAVING_CALENDAR_DATAS_QUERY\";\r\nimport { Query } from \"../../graphql/schema-types\";\r\nimport { filteredItems, IState } from \"../../utils/filteredItems\";\r\nimport { createPavingModule } from \"../../redux/appSlice\";\r\nimport { PAVING_FOREMANS_QUERY } from \"../../graphql/queries/PAVING_FOREMANS_QUERY\";\r\nimport { ScrollSync, ScrollSyncNode } from \"scroll-sync-react\";\r\nimport { SheetHeader } from \"../SuperIntendentPavingModule/FullDayPreview/SheetHeader/SheetHeader\";\r\nimport { ExpandableSheet } from \"../SuperIntendentPavingModule/FullDayPreview/ExpandableSheet/ExpandableSheet\";\r\nimport { Row } from \"./Row/Row\";\r\nimport { FullScreenLoadingIndicator } from \"../Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\n\r\n\r\nexport const FullDayPreviewHistory = () => {\r\n const [state, setState] = useState(filteredItems([], [], []));\r\n const [dates, setDates] = useState([]);\r\n const [nrOfDays, setNrOfDays] = useState(0);\r\n const [unixDate, setUnixDate] = useState([]);\r\n\r\n const { data: pavingForemansList } = useQuery>(PAVING_FOREMANS_QUERY);\r\n const { data, loading } = useQuery>(SUPER_INTENDENT_PAVING_CALENDAR_DATAS_QUERY, {\r\n variables: { where: { startDate: unixDate[0], endDate: unixDate[1], pavingSuperName: \"\" } },\r\n skip: unixDate[0] == null || unixDate[1] == null,\r\n fetchPolicy: \"no-cache\",\r\n errorPolicy: \"all\",\r\n });\r\n\r\n const ref = useRef(null);\r\n\r\n const onPickerDatesChange = (dates: string[]) => {\r\n setDates(dates);\r\n\r\n const _dates: number[] = [];\r\n dates?.forEach(date => {\r\n _dates.push((moment(date).utc().unix()) * 1000)\r\n });\r\n\r\n setUnixDate(_dates);\r\n\r\n const _firstDay = moment(dates?.[0]);\r\n const _lastDay = moment(dates?.[1]);\r\n\r\n const daysLength = Math.abs(moment.duration(_firstDay.diff(_lastDay)).asDays()) + 1;\r\n setNrOfDays(daysLength);\r\n }\r\n\r\n // generate days from the range of dates selected\r\n const generatedDays = (dates.length === 2 && nrOfDays !== 0) ? createPavingModule(nrOfDays as number, dates[0]) : null;\r\n\r\n // filter paving foreman array & remove duplicates from array\r\n const _pavingForemans: string[] | undefined = pavingForemansList?.pavingForemans\r\n ?.map(foreman => foreman?.username as string);\r\n const filteredPavForemans: string[] | undefined = _pavingForemans?.filter((foreman, index) => _pavingForemans?.indexOf(foreman) === index);\r\n filteredPavForemans != null && filteredPavForemans.push(\"Unassgined\");\r\n\r\n useEffect(() => {\r\n if (data == null || data.superIntendentPavingCalendarDatas == null) return;\r\n\r\n if (generatedDays != null && Object.keys(generatedDays).length > 0) {\r\n setState(\r\n {\r\n ...state,\r\n filteredItems: filteredItems(Object.keys(generatedDays), filteredPavForemans as string[], data?.superIntendentPavingCalendarDatas.correctItems).filteredItems,\r\n dayItemsLength: filteredItems(Object.keys(generatedDays), filteredPavForemans as string[], data?.superIntendentPavingCalendarDatas.correctItems).dayItemsLength\r\n }\r\n );\r\n }\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [data?.superIntendentPavingCalendarDatas]);\r\n\r\n const sideScroll = (element: any, direction: string, speed: number, distance: number, step: number) => {\r\n let scrollAmount = 0;\r\n const slideTimer = setInterval(function () {\r\n if (direction === 'left') {\r\n element.scrollLeft -= step;\r\n } else if (direction === 'right') {\r\n element.scrollLeft += step;\r\n } else if (direction === 'up') {\r\n element.scrollTop -= step;\r\n } else if (direction === 'down') {\r\n element.scrollTop += step;\r\n }\r\n scrollAmount += step;\r\n if (scrollAmount >= distance) {\r\n window.clearInterval(slideTimer);\r\n }\r\n }, speed);\r\n }\r\n\r\n const onScrollLeft = () => {\r\n const container = document.getElementById('rightSide');\r\n sideScroll(container, 'left', 25, 100, 10);\r\n };\r\n\r\n const onScrollRight = () => {\r\n const container = document.getElementById('rightSide');\r\n sideScroll(container, 'right', 25, 100, 10);\r\n\r\n };\r\n\r\n const onScrollUp = () => {\r\n const container = document.getElementById('secondaryScroll');\r\n sideScroll(container, 'up', 25, 100, 10);\r\n };\r\n\r\n const onScrollDown = () => {\r\n const container = document.getElementById('secondaryScroll');\r\n sideScroll(container, 'down', 25, 100, 10);\r\n\r\n };\r\n\r\n return (\r\n <>\r\n {loading && }\r\n
\r\n
\r\n
\r\n onPickerDatesChange(dates)}\r\n />\r\n
\r\n\r\n
\r\n
Selected days: {dates[0]} - {dates[1]}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {\r\n generatedDays && Object.keys(generatedDays)?.map((day, index) => (\r\n
{moment(parseInt(day)).utc().format(\"MM-DD-YY\")}
\r\n ))\r\n }\r\n
\r\n
\r\n
\r\n {\r\n filteredPavForemans && filteredPavForemans?.map((pavForemanName, i) => (\r\n \r\n\r\n
\r\n
\r\n
{(pavForemanName == null || pavForemanName === \" \") ? \"Unassigned\" : pavForemanName + \" \"}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {\r\n generatedDays && Object.keys(generatedDays)?.map(day => (\r\n
\r\n {\r\n state?.filteredItems?.[day]?.[pavForemanName]?.map((superIntendentPavingCalendarData, index) => (\r\n
\r\n \r\n
\r\n ))\r\n }\r\n
\r\n ))\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ))\r\n }\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n}","import React, { FC, useEffect, useState } from \"react\";\r\nimport { Switch, Route, Router as Root, Redirect } from \"react-router-dom\";\r\nimport { createBrowserHistory } from \"history\";\r\nimport { Start } from \"./Start\";\r\nimport Schedule from \"./Schedule\";\r\nimport { Nowhere } from \"./Nowhere\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../redux/store\";\r\nimport ModalHub from \"./Modal/ModalHub/ModalHub\";\r\nimport { LoadingHub } from \"./Modal/LoadingHub/LoadingHub\";\r\nimport { Login2 } from \"./Login/Login2\";\r\nimport { RefreshToken } from \"./RefreshToken\";\r\nimport { LogOut } from \"./Login/LogOut\";\r\nimport { SuperIntendentPavingModule } from \"./SuperIntendentPavingModule/SuperIntendentPavingModule\";\r\nimport jwt_decode from \"jwt-decode\";\r\nimport { addPavingModuleUser } from \"../redux/appSlice\";\r\nimport { DisabledUser } from \"./DisabledUser\";\r\nimport { FullScreenLoadingIndicator } from \"./Modal/LoadingIndicator/FullScreenLoadingIndicator\";\r\nimport { PavingPlanner } from \"./PavingPlanner/PavingPlanner\";\r\nimport { FullDayPreviewPage } from \"./FullDayPreviewPage/FullDayPreviewPage\";\r\nimport { SideBar } from \"./SuperIntendentPavingModule/SideBar/SideBar\";\r\nimport { InitPavingModule } from \"./InitPavingModule/InitPavingModule\";\r\nimport { FullDayPreviewHistory } from \"./FullDayPreviewHistory/FullDayPreviewHistory\";\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nconst browserHistory = createBrowserHistory();\r\n\r\nexport const Router: FC = () => {\r\n\tconst token = useSelector((state: RootState) => state.app.auth.id_token);\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst [state, setState] = useState({\r\n\t\tcognito_groups: [] as string[],\r\n\t\temail: \"\",\r\n\t\tname: \"\",\r\n\t\tisDisabled: null as boolean | null,\r\n\t\tisPavingSuper: null as boolean | null,\r\n\t\tisGeneral: null as boolean | null\r\n\t});\r\n\r\n\tconst location = window.location;\r\n\tconst {pathname} = location\r\n\r\n\tuseEffect(() => {\r\n\t\tif (token == null) return;\r\n\t\ttry {\r\n\t\t\tconst decoded_token: any = jwt_decode(token as string);\r\n\t\t\tconst email = decoded_token?.[\"identities\"][0].userId;\r\n\t\t\tconst cognito_groups = decoded_token?.[\"cognito:groups\"];\r\n\t\t\tconst isDisabled = cognito_groups.includes(\"DisabledUsers\");\r\n\t\t\tconst isPavingSuper = cognito_groups.includes(\"PavingSupers\");\r\n\t\t\tconst isGeneral = cognito_groups.includes(\"GeneralPavingSupers\");\r\n\t\t\tconst _name = email.split(\"@\")[0].toUpperCase();\r\n\t\t\tconst name = _name.slice(0, 1) + \" \" + _name.slice(1);\r\n\r\n\t\t\tsetState((state) => ({\r\n\t\t\t\tcognito_groups,\r\n\t\t\t\temail,\r\n\t\t\t\tname,\r\n\t\t\t\tisDisabled,\r\n\t\t\t\tisPavingSuper,\r\n\t\t\t\tisGeneral\r\n\t\t\t}))\r\n\t\t}\r\n\t\tcatch (err) { }\r\n\t}, [token, state.isDisabled])\r\n\r\n\tuseEffect(() => {\r\n\t\tif (token == null) return;\r\n\t\tif (state.isDisabled === true || state.isPavingSuper === false) return;\r\n\r\n\t\tdispatch(addPavingModuleUser({\r\n\t\t\tname: state.name,\r\n\t\t\temail: state.email,\r\n\t\t\tgroups: state.cognito_groups,\r\n\t\t\tisInPavingSupers: state.isPavingSuper as boolean,\r\n\t\t\tisInGeneraPavingSupers: state.isGeneral as boolean,\r\n\t\t\tisDisabled: state.isDisabled as boolean,\r\n\t\t}))\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t}, [token, state.isDisabled])\r\n\r\n\r\n\tif (token == null) return (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n\r\n\tif (state.isDisabled == null && token != null) return ;\r\n\r\n\tif (state.isDisabled != null && state.isDisabled === true) return (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{(state.isPavingSuper === true || state.isGeneral === true)\r\n\t\t\t\t\t\t? \r\n\t\t\t\t\t\t: \r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t{(pathname === \"/pavingplanner\" || pathname === \"/calendar\") && (state.isPavingSuper === true || state.isGeneral === true)\r\n\t\t\t\t\t\t? (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t: (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n","import React, { FC } from \"react\";\r\nimport './App.css';\r\nimport { Provider } from 'react-redux';\r\nimport { store } from \"../redux/store\";\r\nimport { Router } from \"./Router\";\r\nimport { ApolloProvider } from '@apollo/react-hooks';\r\nimport { createClient } from \"../graphql/client\";\r\nimport { emitter } from \"./Modal/emitter\";\r\nimport { createModalContextValue, ModalContext } from \"./Modal/ModalContext/ModalContext\";\r\nimport { loadingContext, loadingContextValue } from \"./Modal/LoadingContext/LoadingContext\";\r\n\r\nconst client = createClient(store);\r\n\r\nconst modalContextValue = createModalContextValue(emitter)\r\n\r\nexport const App: FC = () => {\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}","import { HttpLink } from 'apollo-link-http';\r\nimport { setContext } from 'apollo-link-context';\r\nimport { onError } from 'apollo-link-error';\r\nimport { InMemoryCache } from 'apollo-cache-inmemory';\r\nimport { ApolloClient } from 'apollo-client';\r\nimport { ApolloLink } from 'apollo-link';\r\nimport { settings } from \"../config/settings\";\r\nimport { EnhancedStore } from '@reduxjs/toolkit';\r\nimport { removeToken } from '../redux/appSlice';\r\nimport { removeTokenFromCookie } from '../auth/removeTokenFromCookie';\r\nimport { getTokenFromCookie, getIdTokenFromCookie } from '../auth/getTokenFromCookie';\r\n\r\nexport const createClient = (store: EnhancedStore) => {\r\n // Create connection link\r\n const httpLink = new HttpLink({\r\n uri: settings?.graphqlUri,\r\n });\r\n\r\n // get token for singed requests\r\n const middlewareLink = setContext(() => {\r\n const token = getTokenFromCookie();\r\n const idToken = getIdTokenFromCookie();\r\n const authorizationHeader = token ? `Bearer ${token}` : null;\r\n const cognitoHeader = idToken ? `Bearer ${idToken}` : null;\r\n\r\n return {\r\n headers: {\r\n Authorization: authorizationHeader,\r\n Cognito: cognitoHeader,\r\n },\r\n };\r\n });\r\n\r\n // catch errors\r\n const errorLink = onError(({ networkError, graphQLErrors }) => {\r\n if (graphQLErrors) {\r\n graphQLErrors.map(({ message, locations, path }) =>\r\n console.log(`[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`)\r\n );\r\n }\r\n if (networkError) console.log(`[Network error]: ${networkError}`);\r\n if (\r\n (graphQLErrors\r\n ?.map?.(err => err?.extensions?.code)\r\n ?.filter?.(code => code === \"UNAUTHENTICATED\")\r\n ?.length ?? 0) > 0\r\n ) {\r\n store.dispatch(removeToken());\r\n removeTokenFromCookie();\r\n }\r\n });\r\n\r\n // set cache\r\n const cache = new InMemoryCache();\r\n\r\n // return new client\r\n return new ApolloClient({\r\n link: ApolloLink.from([middlewareLink, errorLink, httpLink]),\r\n cache,\r\n connectToDevTools: true,\r\n });\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport \"@fortawesome/fontawesome-free/css/all.min.css\";\r\nimport * as serviceWorker from './serviceWorker';\r\nimport { App } from './components/App';\r\n\r\nimport moment from \"moment\";\r\nimport { DragDropContextProvider } from \"react-dnd\";\r\nimport HTML5Backend from \"react-dnd-html5-backend\";\r\n// @ts-ignore\r\nwindow.moment = moment;\r\n\r\nReactDOM.render(\r\n\r\n \r\n \r\n \r\n ,\r\n document.getElementById('app-root')\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"center\":\"ModalHub_center__4wssI\",\"backdrop\":\"ModalHub_backdrop__30s0X\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"center\":\"LoadingHub_center__3O8zr\",\"backdrop\":\"LoadingHub_backdrop__3NEjc\"};"],"sourceRoot":""}