{"version":3,"sources":["components/App/FleetWhite.png","reducer/Action.js","components/App/FleetMain.png","components/DashboardComponent/VehiclesOnTour/VehiclesOnTour.js","assets/images/logos/logoAgrivitech.png","assets/images/background/headerbg.svg","assets/images/illustration/Intersection 2_imac2013_right.png","assets/images/illustration/Intersection 3_imac2013_left.png","assets/images/illustration/app.png","assets/images/illustration/farmer.svg","assets/images/illustration/mapMarker.png","components/Login/Login.js","components/DashboardComponent/Delivery/Delivery.js","components/DashboardComponent/Delivery/1.0.png","components/DashboardComponent/IssueBoard/issueBoardList/IssueBoardList.js","components/GenericComponent/FleetLoader/FleetLoader.js","components/DashboardComponent/IssueBoard/IssueBoard.js","components/DashboardComponent/FacturationBoard/FacturationBoard.js","components/DashboardComponent/ResumeBoard/fleetBook_light.png","components/DashboardComponent/ResumeBoard/fleetBook_light_disabled.png","components/DashboardComponent/ResumeBoard/ResumeBoard.js","components/DashboardComponent/ReserveBoard/ReserveBoardList/ReserveBoardList.js","components/DashboardComponent/ReserveBoard/ReserveBoard.js","components/Home/Home.js","assets/images/background/background_decoration.png","assets/images/illustration/undraw_map_re_60yf@2x.png","components/pages/Dashboard/StatusComponent/StatusComponent.js","components/pages/Dashboard/TourItemDashboard/TourItemDashboard.js","components/pages/Dashboard/tour-item-dashboard-loader/tour-item-dashboard-loader.js","assets/images/background/background_decoration2x.png","components/pages/Dashboard/dashboard-claim/dashboard-claim.js","components/pages/Dashboard/dashboard-claim-modal/dashboard-claim-modal.js","assets/images/decoration/chevron@2x.png","constants/tour_status.js","components/pages/Dashboard/kpi/kpi.js","components/pages/Dashboard/custom-date-picker-dashboard/custom-date-picker-dashboard.js","components/_pages/HomeV2/Home.js","assets/images/optimisation/truck.png","components/pages/FleetManagement/platform-color-badge/index.js","components/pages/FleetManagement/tour-item-fleet-management/tour-item-fleet-management.js","utils/string-generator.js","components/_pages/FleetManagement/modal-management/modal-add-truck/index.js","components/_pages/FleetManagement/modal-management/modal-config/index.js","components/_pages/FleetManagement/modal-management/modal-add-platform/index.js","components/pages/FleetManagement/platform-management/index.js","components/_pages/FleetManagement/modal-management/modal-onboarding/index.js","components/_pages/FleetManagement/FleetManagement.js","components/TourItem/earth.png","components/Step/box.png","components/Step/StepAssets/in_v2.png","components/Step/StepAssets/in.png","components/Step/StepAssets/out.png","components/Step/StepAssets/in_out_v2.png","components/Bl/BlAssets/in_arrow_v2.png","components/Bl/BlAssets/out_arrow.png","components/Bl/BlAssets/photo.png","components/Bl/BlAssets/sign.png","components/Bl/BlAssets/signDisabled.png","components/Item/Item.js","components/Bl/Bl.js","components/StatusComponent/StatusComponent.js","components/Loader/MyLoader.js","components/Step/Step.js","components/Bl/BlAssets/photoDisabled.png","components/Step/StepAssets/icon_comment_disabled.png","components/Step/StepAssets/icon_comment.png","components/Step/StepAssets/information.png","components/StepList/StepList.js","components/deferComponentRender.js","components/TourItem/TourItem.js","components/EmptyListComponent/earth.png","components/EmptyListComponent/truck.png","components/EmptyListComponent/EmptyListComponent.js","components/TourItemList/TourItemList.js","utils/tours.js","components/_pages/Tour/Tour.js","components/VehicleItem/VehicleItem.js","components/_pages/Vehicle/Vehicle.js","components/AdminComponents/ClientFilters/ClientFilters.js","components/_pages/Admin/Admin.js","constants/reserve_status.js","components/_pages/Restriction/CardsContract/CardContract.jsx","utils/truncate-string.js","components/_pages/Restriction/CardsContractLoader/CardsContractLoader.jsx","components/_pages/Restriction/Pagination/Pagination.jsx","components/tchat/message.js","components/tchat/index.js","components/_pages/Restriction/ModalAnswerReserve/index.js","components/_pages/Restriction/ModalConsultReserve/index.js","components/Log/index.js","components/Message/index.js","components/ProductReserve/index.js","components/Select/index.js","components/BlReserve/index.js","components/_pages/Restriction/ModalReserve/index.js","components/_pages/Restriction/Restriction.js","assets/images/illustration/no_reserve_data.png","components/Forgot/Forgot.js","components/Reset-password/Reset-password.js","components/_pages/AddVehicle/icon-help.png","components/_pages/AddVehicle/undraw_onboarding_o8mv.png","components/_pages/AddVehicle/AddVehicle.js","components/PrivateRoute/PrivateRoute.js","components/GenericComponent/DragAndDrop/DragAndDrop.js","assets/images/isometric/notebook.png","components/_pages/AddFile/AddFile.js","components/TourItemOptimization/earth.png","components/StepOptimization/StepAssets/in.png","components/StepOptimization/box.png","components/StepOptimization/StepAssets/out.png","components/StepOptimization/StepAssets/in_out.png","components/StepOptimization/StepOptimization.js","components/TourItemOptimization/TourItemOptimization.js","components/StepItemOptimization/StepAssets/in.png","components/StepItemOptimization/box.png","components/StepItemOptimization/StepAssets/out.png","components/StepItemOptimization/StepAssets/in_out.png","components/pages/Optimization/BlOptimization/BlOptimization.js","components/StepItemOptimization/StepItemOptimization.js","components/_pages/Optimization/optimization-detail-modal/optimization-detail-modal.js","components/pages/Optimization/map-fleet-optimization/map-fleet-optimization.js","components/pages/Optimization/map-fleet-optimization/2.0.png","components/_pages/Optimization/Optimization.js","components/App/App.js","serviceWorker.js","reducer/Reducer.js","index.js"],"names":["actions","setConfiguration","config","type","logout","setBlsForATour","tour_id","step_id","bls","setNavWidth","nav_width","vehiclesKPIInterval","Login","props","login","e","preventDefault","url","URL","BASE_URL","myHeaders","Headers","append","myInit","method","headers","body","JSON","stringify","email","state","password","cache","fetch","then","response","ok","json","result","status","setState","errorMessage","errorStatus","token","localStorage","setItem","clientId","decoded","jwt_decode","is_admin","user","can_upload_with_excel","can_access_dashboard_v2","fleet_optimization","logo_url","catch","error","console","log","message","handleEmailChange","target","value","handlePasswordChange","testObject","checkAuth","getItem","to","className","style","backgroundImage","biBG","Col","sm","md","src","agrivitech","alt","mapMarker","Form","display","this","icon","faExclamationCircle","Label","Control","placeholder","autoComplete","onChange","defaultValue","width","Button","variant","onClick","block","disabled","Row","flotte","optimisation","faFile","faParachuteBox","faStar","faShield","faTruckFast","faTruckLoading","faRoute","faSmile","app","farmer","fleetBrand","height","faLocationDot","faEnvelope","faMessageBot","href","Component","mapDispatchToProps","authenticate","connect","isAuthenticated","auth","mapboxgl","accessToken","VehiclesOnTour","fetchKPI","concat","_isMounted","okStatusCount","KPI","OK","lateStatusCount","Late","issueStatusCount","Issue","componentSize","tours","vehiclesOnTourCount","setInterval","clearInterval","prevProps","prevState","snapshot","xs","Container","fluid","Badge","bg","backgroundColor","margin","ref","animBox","process","mapboxInterval","Delivery","drawmarker","map","fetchAllSteps","data","a","steps","features","new_markers","index","el2","end_address","street","city","zipcode","center","feature","properties","step_status","description","name","translateStatus","geometry","coordinates","push","Marker","setLngLat","getLayer","removeLayer","getSource","setData","addSource","cluster","clusterRadius","clusterMaxZoom","addLayer","id","source","layout","paint","word","firstCardCount","delivered","secondCardCount","in_progress","thirdCardCount","canceled","sumCount","lng","lat","zoom","Map","container","mapContainer","on","loadImage","image","addImage","sdf","slice","Math","abs","lngLat","Popup","setHTML","addTo","getCanvas","cursor","el","IssueBoardList","list","length","position","zIndex","faList","delivery_detail_key","faStickyNote","issue_reason_message","marginTop","solveIssueHandler","issue_id","isLoading","FleetLoader","timerFetchIssues","IssueBoard","fetchIssue","debugMode","openIssues","solvedIssues","solveIssue","issueId","registerLocale","fr","setDefaultLocale","ExampleCustomInput","forwardRef","ResumeBoard","fetchData","date","new_date","moment","format","fetchDataServerSidedResume","downloadResume","data_resume","window","open","setTimeout","setStartDate","isResumeAvailable","Date","overflow","in_out_disable","in_out","selected","customInput","locale","dateFormat","ReserveBoardList","delivery_detail_id","timerFetchReserves","ReserveBoard","fetchReserves","reserves","Home","facturations","truckCount","price","marginLeft","listType","compose","withRouter","canceledBls","returnBls","StatusComponent","statusColorClass","statusText","isLate","computeStatus","newStatusText","newColorClass","OverlayTrigger","placement","overlay","Tooltip","triggerHandler","TourItemDashboard","selectedTourID","tour","isMapReady","isMapUpdating","setselectedTourID","as","Card","Header","vehicule_key","tour_key","vehicule_and_datas","steps_handled_left_to_deliver","current_step","issues_kpi","number_of_open_issue","number_of_solved_issue","is_late","delay","show","hide","faWarning","color","areEqual","nextProps","React","memo","TourItemDashboardLoader","DashboardClaim","pathname","blId","claim","issue_created_at","toLocaleDateString","year","month","day","hour","minute","DashboardClaimModal","issues","FetchClaimData","base_url","onHide","SolveIssue","isIssueUpdated","useEffect","Modal","dialogClassName","centered","closeButton","faBullhorn","Body","forceVisible","maxHeight","padding","weekday","bgdeco","tour_status","ALL","DONE","LATE","ISSUE","CREATED","STARTED","all","display_name","done","late","issue","started","created","Kpi","title","CustomDatePickerDashboard","marginRight","faCalendarAlt","MapFleetDashboard","lazy","FluxFleetDashboard","HomeV2","useState","setTours","kpi","setKpi","flux","setFlux","showClaiming","setShowClaiming","setDate","setIsLoading","isDownloadingResume","setIsDownloadingResume","setSelectedTourID","selectedTour","setSelectedTour","tourStatus","setTourStatus","fluxStatus","setFluxStatus","setIsMapReady","setIsMapUpdating","setIssues","useSelector","useRef","history","useHistory","FetchDataServerSidedResume","toISOString","substring","toast","info","isFiltering","useCallback","filteringFunction","filter","x","toUpperCase","socket","io","query","Authorization","_tours","new_tours","indexToReplace","findIndex","_flux","find","t","current","recalculate","dashboardDatas","tours_vehicles_and_steps_datas","FetchDashboardData","DownloadResume","Spinner","animation","size","role","faFileDownload","replace","faClipboardList","reserves_kpi","open_reserves","transform","open_issues","tours_kpi","tours_total","faGlobeEurope","total_reserves","total_issues","tour_index","noDataIllu","fallback","styles","buildStyles","stroke","fontSize","faChevronRight","someDate","today","getDate","getMonth","getFullYear","isToday","BadgeColor","platform","RenderTooltip","RenderTooltipDesactive","RenderTooltipOpti","TourItemFleetManagement","isFleetEditing","handleEditVehicle","vehicle","truck","starting_platform_id","imat","Check","handleToggleVehicleForOptimization","vehicule_id","checked","is_disabled","opacity","generateRandomString","text","possible","i","charAt","floor","random","SwiperCore","use","Navigation","Pagination","add_truck_title_and_desc","desc","GenericFomikTextInput","children","useField","field","meta","htmlFor","touched","ModalAddVehicule","initialValues","vehicle_type","selectedVehicle","pin","containers","step","setStep","swiper","setSwiper","setError","toggleAddContainer","setToggleAddContainer","addContainerMaxWeight","setAddContainerMaxWeight","addContainerMaxVolume","setAddContainerMaxVolume","goToNext","slideTo","canGoToNextStep","values","errors","resetAddContainerInput","handleSubmitMethod","putVehicle","postVehicle","onShow","validationSchema","Yup","required","positive","of","shape","max_volume","max_weight","onSubmit","setSubmitting","submitForm","setFieldValue","spaceBetween","updateOnWindowResize","slidesPerView","observer","pagination","onSwiper","allowTouchMove","lg","can_create_tanker_trucks","can_create_trucks","faTruck","min","faKey","faWeightHanging","faCube","flexGrow","container_index","event","key","newContainers","uuid","deleteContainer","faTrash","faPlusCircle","uuidv1","addNewContainer","platforms","_id","setStartingPlateformID","full_address","element","Footer","ModalConfig","maxKmPerTour","setMaxKmPerTour","averageStopTime","setAverageStopTime","departTime","setDepartTime","maxDuration","setMaxDuration","getConfig","Error","clientConfig","objectAverageStopTime","object","config_value","objectMaxKmPerTourValue","objectDepartTime","objectMaxDuration","configs","config_name","ModalAddPlateform","currentPlatform","setCurrentPlatform","mapContainerRef","MapboxGeocoder","types","countries","place_name","latitude","longitude","postPlatforms","PlatformList","setModalShowAddPlatform","ModalOnBoarding","frameborder","autoplay","allow","FleetManagement","vehicles","setVehicles","vehiclesConfig","setVehiclesConfig","setPlatforms","isVehiclesLoading","setIsVehiclesLoading","setIsPlatformsLoading","modalShow","setModalShow","modalShowTwo","setModalShowTwo","modalHelp","setModalHelp","modalShowAddPlatform","setIsFleetEditing","setSelectedVehicle","getPlatforms","startingPlatforms","getVehicles","vehicules","canCreateTankerTrucks","canCreateTrucks","toggleActivation","switchStatut","newVehicles","isVehiculeUpdated","faCircleInfo","faGear","faAngleLeft","faCirclePlus","faDiagramProject","vehicle_index","vehicle_added","plateform_added","Item","activeKey","number","products","faLeaf","item","item_key","quantity","Bl","blImgArrow","pictoPhotoPlaceholder","pictoSignPlaceholder","bl","delivery_type","outArrow","inArrow","is_dropable","is_present","pictoPhoto","pictoSign","pictoSignDisabled","proofs","proof","doc_type","reason_id","reason_message","reserve","faComment","receiver1","receiver2","items","item_id","PureComponent","statusType","is_handled","MyStepLoader","speed","viewBox","foregroundColor","cx","cy","r","y","rx","ry","MyBLLoader","MyLoader","CustomToggle","eventKey","searchTourId","activeId","setActiveId","decoratedOnClick","useAccordionButton","Step","handleStepCollapse","localBls","deliveryDetails","detailed","searchStepId","toString","document","getElementById","click","exactMatch","imgComponent","commentComponent","pictoComponent","invalidImg","inImg","outImg","inOutImg","box","comments","stepInvalidClassName","does_contain_bl_for_CAL","address_number","faCaretRight","estimated_delivery","total_weight","parseInt","stepsNumber","flexDirection","Accordion","Collapse","contextType","AccordionContext","AccccordionSteps","order","StepList","WrappedComponent","DeferredRenderWrapper","context","shouldRender","requestAnimationFrame","hoistStatics","deferComponentRender","ContextAwareToggle","TourItem","localSteps","setLocalSteps","titleRef","handleTourCollapse","searchValue","scrollIntoView","creation_date","getHours","padStart","getMinutes","getCreationDate","reduce","acc","val","faCheck","toFixed","faHourglassClock","statusTag","tourId","EmptyListComponent","componentImg2","componentImg","setStepsForATour","Accccordion","lastDate","setSearchTourId","setSearchStepId","location","searchParams","URLSearchParams","search","get","defaultActiveKey","starting_date","accordionContext","TourItemList","computeTourSortStatusname","rawStatus","resultStatus","Tour","getTourByID","isLoadingMore","isReachingEnd","isLoadingSearch","localTours","filterByID","getTourPaginated","loadingState","params","endDate","actualDateIndex","filters","indexOf","memoize","fetchToursAndFilter","isOrdering","isSorting","displayName","localToursCount","isTyping","usedBlID","timer","match","handleChangeSort","handleChange","handleSearchBar","getTourFilter","_params","dates","startDate","_status","clearTimeout","handleDeleteTourByIDFilter","Dropdown","Toggle","faSort","Menu","faFilter","seeMoreHandler","VehicleItem","doneTyping","pinCode","errorClass","setVehiclePin","doneTypingInterval","typingTimer","isOpen","classNameInput","last_tour_date","total_steps","ontime_steps","late_steps","in","Group","controlId","handlePinChange","maxLength","Text","vehicle_id","Vehicle","ClientFilters","validClients","invoicesPerClients","client","invoices","ButtonGroup","selectInvoicesForClientId","client_id","client_name","Admin","invoicesPerClient","setInvoicesPerClient","invoicesFiltered","setInvoicesFiltered","getInvoicesPerClient","invoice","vehiculeAmount","smsAmount","totalAmount","vehicle_count","sms_count","periode","end_date","parseFloat","email_count","reserve_status","SOLVED","CardContract","str","num","noBorderBottom","onHandleReserveClick","borderBottom","faClipboard","created_at","receiver_name","textTransform","flex","PaginationComponent","LEFT_PAGE","RIGHT_PAGE","totalRecords","setTotalRecords","totalPages","setTotalPages","pageLimit","setPageLimit","pageNeighbours","setPageNeighbours","currentPage","setCurrentPage","max","ceil","range","from","gotoPage","page","onPageChanged","handleClick","evt","handleMoveLeft","handleMoveRight","pages","totalNumbers","startPage","endPage","hasLeftSpill","hasRightSpill","spillOffset","extraPages","fetchPageNumbers","Message","username","Tchat","messages","ModalAnswerReserve","ModalConsultReserve","conversationArray","setConversationArray","temporaryConversation","selectedreserve","updated_at","buildConversationArray","putReserve","has_been_updated","Log","toLowerCase","faUser","faHeadset","faMessage","getIcon","ProductReserve","product","item_name","item_ean","reserve_quantity","item_quantity","Select","selectedValues","setSelectedValues","setIsOpen","handleSelectedValues","copySelectedValues","splice","stopPropagation","maxWidth","selectedValue","flexShrink","faTimes","includes","BlReserve","ModalReserve","reserve_id","comment","setComment","events","setEvents","selectedBls","setSelectedBls","setReserve","TOKEN","BLS_NUMBER","delivery_details_linked","CREATION_DATE","getReserve","bls_already_linked","delivery_details_available","forEach","is_already_linked","creation_log","logs","response_log","have_to_update","updateBls","resultUpdateBls","solveReserve","resultSolve","selectedBlsIds","contentClassName","toLocaleTimeString","is_valid","Restriction","modalHandleReserve","setModalHandleReserve","modalConsultReserve","setModalConsultReserve","selectedReserve","setSelectedReserve","setReserves","searchInput","setSearchInput","useLocation","allReserves","reservesGroupedByDates","onConsultReserveClick","debouncedSearch","debounce","_offset","_value","getReserves","offset","onHandleSearchInput","dateOfReserves","Fragment","reserveIndex","total","isReserveUpdated","Forgot","sendForgottenPasswordEmail","success","param","warn","ResetPassword","changePassword","passwordConfirm","informationMessage","handlePasswordConfirmChange","tokenErrorMessage","faInfoCircle","AddVehicle","iconHelp","faInfo","PrivateRoute","rest","fakeAuth","render","DragAndDrop","drag","dropRef","createRef","handleDrag","handleDragIn","dragCounter","dataTransfer","handleDragOut","handleDrop","files","clearData","div","addEventListener","removeEventListener","dragging","border","top","bottom","left","right","textAlign","AddFile","uploadPercentage","uploadFile","formData","FormData","options","onUploadProgress","progressEvent","loaded","percent","axios","post","res","err","notebook","ProgressBar","now","label","accept","StepOptimization","inValue","outValue","address","bls_volume","callback","openedTour","TourItemOptimization","borderLeft","setOpenedTour","earth","left_volume","faEllipsisV","BlOptimization","products_volume","openedTourKey","setOpenedTourKey","DistributionItemContainer","shouldHighlight","highlight","pill","maxvolume","DistributionItem","colorArray","product_index","productIndex","borderColor","unit","OptimizationDetailModal","stepsToHighlight","setStepsToHighlight","_stepsToHighlight","selectedtour","step_uuid","j","navigation","centerInsufficientSlides","container_key","volume_in_container","MapFleetOptimization","mapWrapper","setMap","isMapLoaded","setIsMapLoaded","removeLayerAndFeatures","idsArray","removeSource","resizeObserver","ResizeObserver","resize","observe","disconnect","attributionControl","hasImage","removeImage","remove","waypoints","waypoint","point_count","long","buildFeatures","route","platformStart","plaformStart","buildPlatformStart","undefined","pickColorAtIndex","geometry_index","bounds","LngLatBounds","coord","extend","fitBounds","duration","linear","setSourceLayer","zoomTo","buildRouteStep","routesSteps","optimizationData","trips","routes","k","allPlatformStart","trip","maxZoom","setPercentage","setStatus","tourOpen","tourOpenIndex","setTourOpenIndex","setOptimizationData","AllStartPlatform","setAllStartPlatform","UploadSection","OptimizationSection","ConfirmationSection","platformCoods","_platform","behavior","inline","distanceOptimizedStartingPlatform","toTime","seconds","setSeconds","substr","borderRadius","pointerEvents","animated","estimated_travel_distance_in_km","estimated_number_of_seconds","trigger","estimated_number_of_seconds_break","bgdeco2","App","dispatch","useDispatch","version","logoutAction","removeItem","handleDrawerLogic","clientWidth","innerWidth","documentElement","getElementsByTagName","faChevronLeft","faBroadcastTower","faProjectDiagram","faFileImport","faFileInvoiceDollar","faQuestion","faSignInAlt","path","component","limit","Boolean","hostname","defaultState","authToken","reducers","action","Object","assign","value2","require","store","createStore","__REDUX_DEVTOOLS_EXTENSION__","ReactDOM","StrictMode","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.90936e61.chunk.js","sourcesContent":["export default \"data:image/png;base64,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\"","export const actions = {\r\n AUTHENTICATE: \"AUTHENTICATE\",\r\n CONFIG: \"CONFIG\",\r\n LOGOUT: \"LOGOUT\",\r\n SET_TOURS: \"SET_TOURS\",\r\n SET_STEPS_FOR_A_TOUR: \"SET_STEPS_FOR_A_TOUR\",\r\n SET_BLS_FOR_A_TOUR: \"SET_BLS_FOR_A_TOUR\",\r\n VEHICLES: \"VEHICLES\",\r\n SET_VEHICLE_PIN: \"SET_VEHICLE_PIN\",\r\n SET_NAV_WIDTH: \"SET_NAV_WIDTH\",\r\n};\r\n\r\nexport function authenticate(token) {\r\n return { type: actions.AUTHENTICATE, token: token };\r\n}\r\nexport function setConfiguration(config) {\r\n return { type: actions.CONFIG, config: config };\r\n}\r\n\r\nexport function logout() {\r\n return { type: actions.LOGOUT };\r\n}\r\n\r\nexport function setTours(tours) {\r\n return { type: actions.SET_TOURS, tours: tours };\r\n}\r\nexport function setVehicles(vehicles) {\r\n return { type: actions.VEHICLES, vehicles: vehicles };\r\n}\r\nexport function setStepsForATour(tour_id, steps) {\r\n return { type: actions.SET_STEPS_FOR_A_TOUR, tour_id: tour_id, steps: steps };\r\n}\r\nexport function setBlsForATour(tour_id, step_id, bls) {\r\n return {\r\n type: actions.SET_BLS_FOR_A_TOUR,\r\n tour_id: tour_id,\r\n step_id: step_id,\r\n bls: bls,\r\n };\r\n}\r\nexport function setVehiclePin(vehicle_id, pin) {\r\n return { type: actions.SET_VEHICLE_PIN, vehicle_id: vehicle_id, pin: pin };\r\n}\r\n\r\nexport function setNavWidth(nav_width) {\r\n return { type: actions.SET_NAV_WIDTH, nav_width: nav_width };\r\n}\r\n","export default \"data:image/png;base64,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\"","import React, { Component } from \"react\";\r\nimport { Badge, Col, Container, Row } from \"react-bootstrap\";\r\nimport mapboxgl from \"mapbox-gl\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nmapboxgl.accessToken =\r\n \"pk.eyJ1IjoiYmF6YW0iLCJhIjoiY2oyMGo2YWM4MDAzMDMzcnZuenJ2MGF5MCJ9.YV9qxda8pOMxuy9VxN_zbA\";\r\n\r\nlet vehiclesKPIInterval;\r\nexport class VehiclesOnTour extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n componentSize: props.componentSize,\r\n tours: props.tours,\r\n okStatusCount: 0,\r\n lateStatusCount: 0,\r\n issueStatusCount: 0,\r\n vehiclesOnTourCount: 0,\r\n };\r\n this._isMounted = false;\r\n }\r\n\r\n fetchKPI = () => {\r\n const url = new URL(this.props.BASE_URL.concat(\"/tours/KPI\"));\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = { method: \"GET\", headers: myHeaders, cache: \"no-cache\" };\r\n\r\n // console.log(\"GET request @ \", this.props.BASE_URL.concat('/tours/KPI'));\r\n fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n if (result.status === \"Success\") {\r\n this._isMounted &&\r\n this.setState({\r\n okStatusCount: result.KPI.OK,\r\n lateStatusCount: result.KPI.Late,\r\n issueStatusCount: result.KPI.Issue,\r\n });\r\n }\r\n });\r\n } else {\r\n console.log(\"Mauvaise réponse du réseau\");\r\n response.json().then(function (result) {\r\n // console.log(\"result\", result);\r\n });\r\n }\r\n })\r\n .catch(function (error) {\r\n // console.log('Il y a eu un problème avec l\\'opération fetch: ' + error.message);\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n this._isMounted = true;\r\n\r\n this._isMounted && this.fetchKPI();\r\n vehiclesKPIInterval = setInterval(() => {\r\n this._isMounted && this.fetchKPI();\r\n }, 10000);\r\n\r\n // animObj = lottie.loadAnimation({\r\n // container: this.animBox, // the dom element that will contain the animation\r\n // renderer: 'svg',\r\n // loop: true,\r\n // autoplay: true,\r\n // animationData: animationData // the path to the animation json\r\n // });\r\n }\r\n\r\n componentWillUnmount() {\r\n // Lors du déchargement de la page, on de-register le setInterval qui va fetch les KPI de véhicules.\r\n this._isMounted = false;\r\n\r\n clearInterval(vehiclesKPIInterval);\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (\r\n this.state.okStatusCount !== prevState.okStatusCount ||\r\n this.state.lateStatusCount !== prevState.lateStatusCount ||\r\n this.state.issueStatusCount !== prevState.issueStatusCount\r\n ) {\r\n this.setState({\r\n vehiclesOnTourCount:\r\n this.state.okStatusCount +\r\n this.state.lateStatusCount +\r\n this.state.issueStatusCount,\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n
\r\n {/**/}\r\n {/*Tooltip on {\"right\"}.*/}\r\n {/**/}\r\n {/*}*/}\r\n {/*>*/}\r\n {/**/}\r\n {/**/}\r\n
\r\n \r\n \r\n \r\n

\r\n Véhicules en tournée{\" \"}\r\n {this.state.vehiclesOnTourCount}\r\n

\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n {this.state.okStatusCount}\r\n \r\n \r\n Ok\r\n \r\n \r\n
\r\n \r\n \r\n \r\n {this.state.lateStatusCount}\r\n \r\n \r\n En retard\r\n \r\n \r\n
\r\n \r\n \r\n \r\n {this.state.issueStatusCount}\r\n \r\n \r\n Problème\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n (this.animBox = ref)}\r\n >
\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default VehiclesOnTour;\r\n","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/headerbg.1c9e6592.svg\";","export default __webpack_public_path__ + \"static/media/Intersection 2_imac2013_right.49c53b8c.png\";","export default __webpack_public_path__ + \"static/media/Intersection 3_imac2013_left.598da0b8.png\";","export default __webpack_public_path__ + \"static/media/app.a832a925.png\";","export default __webpack_public_path__ + \"static/media/farmer.f97f9c44.svg\";","export default __webpack_public_path__ + \"static/media/mapMarker.96430cde.png\";","import React, { Component } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n\r\nimport jwt_decode from \"jwt-decode\";\r\n\r\nimport { Container, Row, Col, Form, Button, InputGroup } from \"react-bootstrap\";\r\n\r\nimport \"../App/App.scss\";\r\nimport \"./Login.scss\";\r\nimport { Redirect, withRouter, useHistory } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { authenticate, setConfiguration } from \"../../reducer/Action\";\r\nimport fleetBrand from \"../App/FleetWhite.png\";\r\nimport fleetBrandGreen from '../App/FleetMain.png';\r\nimport agrivitech from '../../assets/images/logos/logoAgrivitech.png';\r\nimport biBG from '../../assets/images/background/headerbg.svg';\r\nimport optimisation from \"../../assets/images/illustration/Intersection 2_imac2013_right.png\";\r\nimport flotte from \"../../assets/images/illustration/Intersection 3_imac2013_left.png\";\r\nimport app from \"../../assets/images/illustration/app.png\";\r\nimport farmer from \"../../assets/images/illustration/farmer.svg\";\r\nimport mapMarker from \"../../assets/images/illustration/mapMarker.png\";\r\nimport { \r\n faEnvelope,\r\n faExclamationCircle,\r\n faTruckFast,\r\n faTruckLoading,\r\n faRoute,\r\n faSmile,\r\n faFile,\r\n faParachuteBox,\r\n faStar,\r\n faShield,\r\n faLocationDot,\r\n faMessageBot,\r\n } from \"@fortawesome/pro-duotone-svg-icons\";\r\n\r\nclass Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n email: \"\",\r\n password: \"\",\r\n testObject: null,\r\n errorMessage: \"\",\r\n errorStatus: false,\r\n };\r\n }\r\n\r\n login = (e) => {\r\n e.preventDefault();\r\n\r\n const url = new URL(this.props.BASE_URL + \"/auth/byCredential\");\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n\r\n let myInit = {\r\n method: \"POST\",\r\n headers: myHeaders,\r\n body: JSON.stringify({\r\n email: this.state.email,\r\n password: this.state.password,\r\n }),\r\n cache: \"no-cache\",\r\n };\r\n\r\n fetch(url, myInit)\r\n .then((response) => {\r\n // console.log(\"POST request @ \", this.props.BASE_URL+'/auth/byCredential');\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n if (result.status === \"Bad credentials\") {\r\n this.setState({\r\n errorMessage: \"Mot de passe ou e-mail incorrect.\",\r\n errorStatus: true,\r\n });\r\n } else {\r\n if (result.token) {\r\n localStorage.setItem(\"fleetToken\", result.token);\r\n localStorage.setItem(\"fleetClientId\", result.clientId);\r\n //decode the token and store it in state\r\n let decoded = result.token ? jwt_decode(result.token) : null;\r\n if (decoded) {\r\n this.props.setConfiguration({\r\n is_admin: decoded?.user?.is_admin === 1 ? true : false,\r\n can_upload_with_excel:\r\n decoded?.user?.can_upload_with_excel === 1 ? true : false,\r\n can_access_dashboard_v2:\r\n decoded?.user?.can_access_dashboard_v2 === 1\r\n ? true\r\n : false,\r\n fleet_optimization:\r\n decoded?.user?.fleet_optimization === 1 ? true : false,\r\n logo_url: decoded?.user?.logo_url,\r\n });\r\n }\r\n this.setState({\r\n email: \"\",\r\n password: \"\",\r\n });\r\n }\r\n }\r\n });\r\n } else if (response.status === 401) {\r\n response.json().then((result) => {\r\n // console.log(\"result\", result);\r\n\r\n if (result.status === \"Bad credentials\") {\r\n this.setState({\r\n errorMessage: \"Mot de passe ou e-mail incorrect.\",\r\n errorStatus: true,\r\n });\r\n }\r\n });\r\n } else if (response.status === 400) {\r\n this.setState({\r\n errorMessage: \"Une erreur s'est produite\",\r\n errorStatus: true,\r\n });\r\n } else {\r\n this.setState({\r\n errorMessage:\r\n \"Une erreur réseau est survenue, veuillez contacter le support client.\",\r\n errorStatus: true,\r\n });\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n });\r\n\r\n //this.props.authenticate(\"teub\");\r\n\r\n // console.log(\"connected\", this.props.isAuthenticated );\r\n };\r\n\r\n handleEmailChange = (e) => {\r\n const email = e.target.value;\r\n this.setState({\r\n email: email,\r\n });\r\n };\r\n\r\n handlePasswordChange = (e) => {\r\n const password = e.target.value;\r\n this.setState({\r\n password: password,\r\n });\r\n };\r\n\r\n render() {\r\n if (checkAuth()) {\r\n let decoded = jwt_decode(localStorage.getItem(\"fleetToken\"));\r\n return (\r\n \r\n );\r\n }\r\n\r\n \r\n\r\n return (\r\n <>\r\n\r\n
\r\n
\r\n \r\n \"logo\"\r\n

FLEET SIMPLIFIE LA GESTION DES TRANSPORTS D'APPRO, LA COLLECTE OU LES LIVRAISONS DU SECTEUR AGRICOLE

\r\n

\r\n Solution innovante permettant d'optimiser rapidement vos tournées de livraison, de notifier en temps réel vos destinataires et de dématérialiser les documents de livraison.\r\n

\r\n \"logo\"\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {\" \"}\r\n {this.state.errorMessage}\r\n
\r\n
\r\n Adresse email\r\n this.handleEmailChange(e)}\r\n defaultValue={this.state.email}\r\n aria-describedby=\"basic-addon1\"\r\n />\r\n Mot de passe\r\n this.handlePasswordChange(e)}\r\n defaultValue={this.state.password}\r\n aria-describedby=\"basic-addon2\"\r\n />\r\n\r\n \r\n \r\n

\r\n Mot de passe oublié ?\r\n

\r\n \r\n this.login(e)}\r\n className={\"btn-login mt-4\"}\r\n block=\"true\"\r\n disabled={\r\n this.state.email === \"\" || this.state.password === \"\"\r\n }\r\n >\r\n Connexion\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n Optimisez et suivez automatiquement vos tournées en temps réel\r\n
\r\n

\r\n Application mobile pour l’exécution de la tournée du livreur\r\n Réduction de l’impact carbone des livraisons\r\n Notification en temps réel par sms, email, notification push, etc...\r\n Preuve de livraison par signature ou photo géolocalisée\r\n Dématérialisation des documents de livraison\r\n UX co-développée avec des chauffeurs pour une expérience optimale\r\n

\r\n \r\n \r\n
\r\n \"flotte\"\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \"logo\"\r\n {/* \"logo\" */}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n Documents de transport dématérialisés\r\n
\r\n
\r\n Vos bons de livraison dématérialisés sont échangés en temps réel entre vos équipes et le client pour réduire les délais de traitement, facturation...\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n 30% de retours en moins\r\n
\r\n
\r\n Avec la livraison sans présence du destinataire et l'affichage dans l'application du lieu de dépose en ferme réduisez retours : 30% de retours en moins !\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n Gestion des anomalies\r\n
\r\n
\r\n Les anomalies de livraison (annulation, refus, réserve, etc) sont remontées en temps réel pour un maximum de réactivité\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n Sécurisez les lieux de livraison\r\n
\r\n
\r\n Vos livreurs pourront prendre en photo les lieux de livraison dangereux ou non conformes pour vous permettre une meilleure gestion\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n {/*
\r\n Générez des tournées optimisées en quelques secondes \r\n
\r\n
\r\n Mesurer l'impacte financier et environnemental de vos livraisons dans le temps\r\n
\r\n
\r\n Suivez votre livraisons en temps réel et gagnez en réactivité\r\n
\r\n
\r\n Sécurisez vos opérations en identifiants les lieux de livraison\r\n
*/}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n Livrez sans présence du destinataire\r\n
\r\n
\r\n Preuve de livraison par photo datée et géolocalisée avec notification instantanée au destinataire\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n Chargement intelligent de vos camions\r\n
\r\n
\r\n Fleet génère automatiquement l'ordre de chargement optimal de vos camions standards ou citernes\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n Optimisation de vos tournées\r\n
\r\n
\r\n Obtenez en quelques secondes les simulations de trajets optimaux qui s'adapte à vos contraintes métiers\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n Contact destinataire facilité\r\n
\r\n
\r\n Appel téléphonique du destinataire depuis l'application, notification automatique à l'approche de la livraison, remontée d'anomalies\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \"logo\"\r\n {/* \"logo\" */}\r\n \r\n
\r\n
\r\n \r\n

Réduisez l'empreinte carbone graçe aux fonctionalités de l'application Fleet®

\r\n \r\n \r\n

\r\n Moins de kilomètres, moins de temps de livraison, moins de papier !\r\n

\r\n
    \r\n
  • Moins de kilomètres : l'application réduit le nombre de retours plateforme en permettant de livrer sans la présence de l'agriculteur.
  • \r\n
  • Moins de temps sur place : en prévenant les destinataires avant l'arrivée vous réduisez le temps de livraison
  • \r\n
  • Moins de papier : fin des bons de livraison papier
  • \r\n
\r\n \r\n \r\n \"logo\"\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\"logo\" {\" \"} par {\" \"} \"logo\"
\r\n
17 rond-point de l'Europe
\r\n 51430 Bezannes
\r\n \r\n
contact@agrivitech.com
\r\n
https://discord.gg/t5GE2wTDSk
\r\n
\r\n\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst checkAuth = () => {\r\n return localStorage.getItem(\"fleetToken\");\r\n};\r\n\r\nconst mapStateToProps = (state /*, ownProps*/) => {\r\n return {\r\n isAuthenticated: state.auth.isAuthenticated,\r\n BASE_URL: state.BASE_URL,\r\n config: state.config,\r\n };\r\n};\r\nconst mapDispatchToProps = { authenticate, setConfiguration };\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Login);\r\n","import React, { Component } from \"react\";\r\nimport { Badge, Col, Container, Row } from \"react-bootstrap\";\r\nimport lottie from \"lottie-web\";\r\nimport animationData from \"../../Home/3075-delivery-van\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nimport mapboxgl from \"mapbox-gl\";\r\n\r\nimport in_out_disable from \"./1.0.png\";\r\n\r\nmapboxgl.accessToken = process.env.REACT_APP_MAPBOX_ACCESS_TOKEN;\r\n\r\nlet animObj = null;\r\nlet mapboxInterval = null;\r\nexport class Delivery extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n componentSize: props.componentSize,\r\n tours: props.tours,\r\n firstCardCount: 0,\r\n secondCardCount: 0,\r\n thirdCardCount: 0,\r\n sumCount: 0,\r\n lng: 4.0333,\r\n lat: 49.25,\r\n zoom: 7,\r\n };\r\n this._isMounted = false;\r\n }\r\n\r\n componentDidMount() {\r\n this._isMounted = true;\r\n const map = new mapboxgl.Map({\r\n container: this.mapContainer,\r\n style: \"mapbox://styles/bazam/ck9bl6ycn050g1ip509540isz\",\r\n center: [this.state.lng, this.state.lat],\r\n zoom: this.state.zoom,\r\n });\r\n\r\n map.on(\"load\", () => {\r\n map.loadImage(in_out_disable, function (error, image) {\r\n if (error) throw error;\r\n\r\n map.addImage(\"mapPin\", image, { sdf: true });\r\n\r\n map.on(\"click\", \"points\", function (e) {\r\n var coordinates = e.features[0].geometry.coordinates.slice();\r\n var description = e.features[0].properties.description;\r\n\r\n while (Math.abs(e.lngLat.lng - coordinates[0]) > 180) {\r\n coordinates[0] += e.lngLat.lng > coordinates[0] ? 360 : -360;\r\n }\r\n\r\n new mapboxgl.Popup()\r\n .setLngLat(coordinates)\r\n .setHTML(description)\r\n .addTo(map);\r\n });\r\n\r\n // Change the cursor to a pointer when the mouse is over the places layer.\r\n map.on(\"mouseenter\", \"points\", function () {\r\n map.getCanvas().style.cursor = \"pointer\";\r\n });\r\n\r\n // Change it back to a pointer when it leaves.\r\n map.on(\"mouseleave\", \"points\", function () {\r\n map.getCanvas().style.cursor = \"\";\r\n });\r\n });\r\n this.drawmarker(map);\r\n });\r\n\r\n this.fetchKPI();\r\n mapboxInterval = setInterval(async () => {\r\n this.fetchKPI();\r\n this.drawmarker(map);\r\n }, 5000);\r\n }\r\n\r\n componentWillUnmount() {\r\n // Lors du déchargement de la page, on de-register le setInterval qui va fetch les étapes pour mapbox.\r\n this._isMounted = false;\r\n\r\n clearInterval(mapboxInterval);\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (\r\n this.state.firstCardCount !== prevState.firstCardCount ||\r\n this.state.secondCardCount !== prevState.secondCardCount ||\r\n this.state.thirdCardCount !== prevState.thirdCardCount\r\n ) {\r\n this.setState({\r\n sumCount:\r\n this.state.firstCardCount +\r\n this.state.secondCardCount +\r\n this.state.thirdCardCount,\r\n });\r\n }\r\n }\r\n\r\n drawmarker = (map) => {\r\n this.fetchAllSteps().then(async (data) => {\r\n let steps = data || [];\r\n\r\n let features = [];\r\n let new_markers = [];\r\n let index = 0;\r\n\r\n for (let el2 of steps) {\r\n if (index < 50) {\r\n index++;\r\n await fetch(\r\n \"https://api.mapbox.com/geocoding/v5/mapbox.places/\" +\r\n el2.end_address?.street +\r\n \" \" +\r\n el2.end_address?.city +\r\n \" \" +\r\n el2.end_address?.zipcode +\r\n \" France.json?access_token=pk.eyJ1IjoiYmF6YW0iLCJhIjoiY2tjdnN6dXQ0MDdnaTJ2cHF1cG12Zm15NSJ9.Z1Sb2Umu0sMaw4o77CK8Sw\"\r\n )\r\n .then((response) => {\r\n return response.json();\r\n })\r\n .then((json) => {\r\n let center = \"\";\r\n\r\n center = json.features[0].center;\r\n\r\n if (json && json.features && json.features[0]) {\r\n let feature = {\r\n type: \"Feature\",\r\n properties: {\r\n step_status: el2.status,\r\n description:\r\n '
' +\r\n '' +\r\n (el2.end_address?.name ? el2.end_address.name : \"n.c\") +\r\n \"
\" +\r\n '' +\r\n ((el2.end_address?.street\r\n ? el2.end_address?.street\r\n : \"\") +\r\n \" \" +\r\n (el2.end_address?.city ? el2.end_address?.city : \"\") +\r\n \" \" +\r\n (el2.end_address?.zipcode\r\n ? el2.end_address?.zipcode\r\n : \"\")) +\r\n \"
\" +\r\n '' +\r\n this.translateStatus(el2.status) +\r\n \"\" +\r\n \"
\",\r\n },\r\n geometry: {\r\n type: \"Point\",\r\n coordinates: [\r\n json.features[0].center[0],\r\n json.features[0].center[1],\r\n ],\r\n },\r\n };\r\n\r\n new_markers.push(new mapboxgl.Marker().setLngLat(center));\r\n\r\n return feature;\r\n }\r\n\r\n return null;\r\n })\r\n .then((feature) => {\r\n if (feature) {\r\n features.push(feature);\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (map.getLayer(\"points\")) {\r\n map.removeLayer(\"points\");\r\n }\r\n if (map.getSource(\"steps\")) {\r\n map.getSource(\"steps\").setData({\r\n type: \"FeatureCollection\",\r\n features: features,\r\n });\r\n } else {\r\n map.addSource(\"steps\", {\r\n type: \"geojson\",\r\n data: {\r\n type: \"FeatureCollection\",\r\n features: features,\r\n },\r\n cluster: false, // Enable clustering\r\n clusterRadius: 50, // Radius of each cluster when clustering points\r\n clusterMaxZoom: 12, // Max zoom to cluster points on\r\n });\r\n }\r\n\r\n map.addLayer({\r\n id: \"points\",\r\n type: \"symbol\",\r\n source: \"steps\",\r\n layout: {\r\n \"icon-allow-overlap\": true,\r\n \"icon-ignore-placement\": true,\r\n \"icon-image\": \"mapPin\",\r\n \"icon-size\": 0.6,\r\n },\r\n paint: {\r\n // make circles larger as the user zooms from z12 to z22\r\n \"icon-color\": [\r\n \"match\",\r\n [\"get\", \"step_status\"],\r\n \"CREATED\",\r\n \"#079992\",\r\n \"STARTED\",\r\n \"#079992\",\r\n \"DELIVERED\",\r\n \"#78e08f\",\r\n \"PARTIALLY_DELIVERED\",\r\n \"#e55039\",\r\n \"CANCELED\",\r\n \"#e55039\",\r\n \"LATE\",\r\n \"#fa983a\",\r\n /* other */ \"#0e44cc\",\r\n ],\r\n // color circles by ethnicity, using a match expression\r\n // https://docs.mapbox.com/mapbox-gl-js/style-spec/#expressions-match\r\n },\r\n });\r\n });\r\n };\r\n\r\n translateStatus = (word) => {\r\n switch (word) {\r\n case \"CREATED\":\r\n return \"Planifiée\";\r\n case \"STARTED\":\r\n return \"Livraison en cours\";\r\n case \"DELIVERED\":\r\n return \"Livrée\";\r\n case \"PARTIALLY_DELIVERED\":\r\n return \"Partiellement délivrée\";\r\n case \"CANCELED\":\r\n return \"Non livrée\";\r\n case \"LATE\":\r\n return \"En retard\";\r\n }\r\n };\r\n\r\n fetchKPI = () => {\r\n const url = new URL(this.props.BASE_URL.concat(\"/steps/KPI\"));\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = { method: \"GET\", headers: myHeaders, cache: \"no-cache\" };\r\n\r\n // console.log(\"GET request @ \", this.props.BASE_URL.concat('/steps/KPI'));\r\n\r\n fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n if (result.status === \"Success\") {\r\n this._isMounted &&\r\n this.setState({\r\n firstCardCount: result.KPI.delivered,\r\n secondCardCount: result.KPI.in_progress,\r\n thirdCardCount: result.KPI.canceled,\r\n });\r\n }\r\n });\r\n } else {\r\n console.log(\"Mauvaise réponse du réseau\");\r\n response.json().then(function (result) {\r\n // console.log(\"result\", result);\r\n });\r\n }\r\n })\r\n .catch(function (error) {\r\n // console.log('Il y a eu un problème avec l\\'opération fetch: ' + error.message);\r\n });\r\n };\r\n\r\n fetchAllSteps = () => {\r\n const url = new URL(this.props.BASE_URL + \"/steps\");\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = { method: \"GET\", headers: myHeaders, cache: \"no-cache\" };\r\n\r\n // console.log(\"GET request @ \", this.props.BASE_URL.concat('/steps'));\r\n\r\n return fetch(url, myInit)\r\n .then((response) => response.json())\r\n .then(async (result) => {\r\n if (result.status === \"Success\") {\r\n // console.log(result.steps)\r\n return result.steps || [];\r\n }\r\n })\r\n .then((data) => {\r\n return data;\r\n })\r\n .catch(function (error) {\r\n // console.log('Il y a eu un problème avec l\\'opération fetch: ' + error.message);\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n
\r\n {/**/}\r\n {/*Tooltip on {\"right\"}.*/}\r\n {/**/}\r\n {/*}*/}\r\n {/*>*/}\r\n {/**/}\r\n {/**/}\r\n
\r\n\r\n \r\n \r\n \r\n

\r\n Étapes {this.state.sumCount}\r\n

\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {this.state.firstCardCount}\r\n \r\n \r\n Livrée(s)\r\n \r\n
\r\n \r\n \r\n {this.state.secondCardCount}\r\n \r\n \r\n En cours\r\n \r\n
\r\n \r\n \r\n \r\n {this.state.thirdCardCount}\r\n \r\n \r\n Non livrée(s)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n (this.mapContainer = el)}\r\n className=\"mapContainer\"\r\n />\r\n
\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Delivery;\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAAAsTAAALEwEAmpwYAAAE6WlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMC0xMC0xNFQwOToxODo1NyswMjowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjAtMTAtMTRUMDk6NTk6MTIrMDI6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjAtMTAtMTRUMDk6NTk6MTIrMDI6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjc1OTU1YzhlLThjNTQtZTI0My1hNmQ5LTA3MTJlMGY2OTc2MiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NTk1NWM4ZS04YzU0LWUyNDMtYTZkOS0wNzEyZTBmNjk3NjIiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo3NTk1NWM4ZS04YzU0LWUyNDMtYTZkOS0wNzEyZTBmNjk3NjIiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjc1OTU1YzhlLThjNTQtZTI0My1hNmQ5LTA3MTJlMGY2OTc2MiIgc3RFdnQ6d2hlbj0iMjAyMC0xMC0xNFQwOToxODo1NyswMjowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4/1IASAAAB6UlEQVRIibXWO2gVQRTG8V80IkqCwQdYxMLCQlRsbAVfhQYsbLQWFAvRIsEQgjaCYGVloRgfhYGIIAFRq2iXVkEUBB/IjYUYMRqFiOC1mAjXvTO7s1G/avebM+e/zJwzsx3NZlNRjd7eNg/rcAi7sQFd+IZXeIQxvGmbNDX1x3tHBnAJhnASq2NfMq8ZXMQ5zKWAi0oSQDfGcbYCBj04jftYlQoqA3ZiFH0VoKJ24jaW1gWewP6asFboUB3gGgwnxiZxBHtwWCiYmAaEQssCHhDfszHswFVM4IZQtSOR2G4czAXui3jTQqX+KPhN9ONdZM7eXODGiPcMHxLxs3gS8dfnArsi3opE7G/1RLzlucCYNku3yHZsy0mSAs5EvE6hWPqwuGX+LtwU77vZWJKYJrEp4q/FPTwVimgltiZywONc4DiOliTaUjLWqjtFI7WkE3iRmTSlhnCuZgG/49JfAq/gay4Qros3c46mJT64DPgZ5xcIvCBxSFT14Qie14S9Fi7iqKqAcxisCRwW6b9cIKHv2so7oQe4VRaQe7T142NFzBfh0i5VLvCt6qU9I/zB/RMgXMPdxNhDJYWyUCAcx/uC9wnH8PN/ABva92kAL3MT1AUSfgEvzz+PCidStlK3RZUGsQyn6k78BUUkXnChKwjDAAAAAElFTkSuQmCC\"","import React from \"react\"\r\nimport ContentLoader from \"react-content-loader\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faList, faStickyNote} from \"@fortawesome/free-solid-svg-icons\";\r\nimport {Link} from \"react-router-dom\";\r\n\r\n\r\nfunction IssueBoardList(props){\r\n if(props.list && props.list.length > 0){\r\n return props.list.map((value, index) => {\r\n return (\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n {value.delivery_detail_key ? value.delivery_detail_key : \"BL 00000000\"}\r\n {value.issue_reason_message ? value.issue_reason_message : \"n.c\"}\r\n \r\n \r\n
\r\n )\r\n })\r\n }else{\r\n return (\r\n Aucun BL non livré.\r\n );\r\n\r\n }\r\n}\r\n\r\nexport default IssueBoardList\r\n","import React from \"react\"\r\n\r\nimport './FleetLoader.css'\r\n\r\nexport function FleetLoader(props){\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default FleetLoader","import React, { Component } from \"react\";\r\nimport { Badge, Col, Container, Row } from \"react-bootstrap\";\r\n\r\nimport \"react-perfect-scrollbar/dist/css/styles.css\";\r\nimport PerfectScrollbar from \"react-perfect-scrollbar\";\r\nimport IssueBoardList from \"./issueBoardList/IssueBoardList\";\r\nimport FleetLoader from \"../../GenericComponent/FleetLoader/FleetLoader\";\r\n\r\nlet timerFetchIssues = null;\r\nexport class IssueBoard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n componentSize: props.componentSize,\r\n openIssues: props.openIssues,\r\n solvedIssues: props.solvedIssues,\r\n sumCount: 0,\r\n isLoading: false,\r\n error: \"\",\r\n };\r\n this._isMounted = false;\r\n }\r\n\r\n fetchIssue = () => {\r\n const url = new URL(this.props.BASE_URL.concat(\"/issues/withBlsAndTours\"));\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = { method: \"GET\", headers: myHeaders, cache: \"no-cache\" };\r\n\r\n if (this.props.debugMode) {\r\n console.log(\r\n \"GET request @ \",\r\n this.props.BASE_URL.concat(\"/issues/withBlsAndTours\")\r\n );\r\n }\r\n\r\n fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n if (result.status === \"Success\") {\r\n this._isMounted &&\r\n this.setState({\r\n openIssues: result.openIssues,\r\n solvedIssues: result.solvedIssues,\r\n isLoading: false,\r\n });\r\n } else {\r\n this._isMounted &&\r\n this.setState({\r\n isLoading: false,\r\n });\r\n }\r\n });\r\n } else {\r\n response.json().then((result) => {\r\n this._isMounted &&\r\n this.setState({\r\n isLoading: false,\r\n });\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n this._isMounted &&\r\n this.setState({\r\n isLoading: false,\r\n error:\r\n \"Il y a eu un problème avec l'opération fetch\" + error.message,\r\n });\r\n });\r\n };\r\n\r\n solveIssue = (issueId) => {\r\n this._isMounted &&\r\n this.setState({\r\n isLoading: true,\r\n });\r\n const url = new URL(this.props.BASE_URL.concat(\"/issues/\", issueId));\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = {\r\n method: \"PUT\",\r\n headers: myHeaders,\r\n cache: \"no-cache\",\r\n body: JSON.stringify({\r\n status: \"SOLVED\",\r\n }),\r\n };\r\n\r\n if (this.props.debugMode) {\r\n console.log(\r\n \"PUT request @ \",\r\n this.props.BASE_URL.concat(\"/issues/\", issueId)\r\n );\r\n }\r\n\r\n fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n if (result.status === \"Success\") {\r\n this._isMounted &&\r\n this.setState({\r\n openIssues: result.openIssues,\r\n solvedIssues: result.solvedIssues,\r\n });\r\n this._isMounted && this.fetchIssue();\r\n }\r\n });\r\n } else {\r\n response.json().then((result) => {\r\n console.error(\"Mauvaise réponse du réseau\", result);\r\n\r\n this.setState({\r\n isLoading: false,\r\n });\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n this.setState({\r\n isLoading: false,\r\n });\r\n console.error(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n this._isMounted = true;\r\n this._isMounted && this.fetchIssue();\r\n timerFetchIssues = setInterval(() => {\r\n this._isMounted && this.fetchIssue();\r\n }, 10000);\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false;\r\n\r\n // Lors du déchargement de la page, on de-register le setInterval qui va fetch les issues.\r\n\r\n clearInterval(timerFetchIssues);\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (\r\n this?.state?.openIssues !== prevState?.openIssues ||\r\n this?.state?.solvedIssues !== prevState?.solvedIssues\r\n ) {\r\n this.setState({\r\n sumCount: this?.state?.openIssues?.length,\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n Réclamations {this.state.sumCount}\r\n

\r\n \r\n
\r\n
\r\n \r\n \r\n {this.state.openIssues?.length > 0 ? \"Ouvertes\" : \"Ouverte\"}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {this.state.solvedIssues?.length > 0\r\n ? \"Traitées\"\r\n : \"Traitée\"}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default IssueBoard;\r\n","import React, { Component } from \"react\";\r\nimport { Col, Table } from \"react-bootstrap\";\r\n\r\nimport \"./FacturationBoard.css\";\r\n\r\nexport class FacturationBoard extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n //convert date string to date object\r\n if (props.facturations.length > 0) {\r\n props.facturations.map((value, index) => {\r\n const factDate = new Date(value.date);\r\n props.facturations[index].date = factDate;\r\n });\r\n }\r\n\r\n this.state = {\r\n componentSize: props.componentSize,\r\n facturations: props.facturations,\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

Véhicules actif par mois

\r\n\r\n
\r\n Mois en cours\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.facturations.map((value, index) => {\r\n const now = new Date();\r\n if (value.date.getMonth() === now.getMonth()) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n })}\r\n \r\n
MoisCamionsPrix
\r\n {value.date.toLocaleDateString(\"fr-FR\", {\r\n month: \"short\",\r\n year: \"numeric\",\r\n })}\r\n {value.truckCount}\r\n {value.price}€ TTC\r\n
\r\n
\r\n\r\n
\r\n Mois écoulés\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.facturations.map((value, index) => {\r\n const now = new Date();\r\n if (value.date.getMonth() !== now.getMonth()) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n })}\r\n \r\n
MoisCamionsPrix
\r\n {value.date.toLocaleDateString(\"fr-FR\", {\r\n month: \"short\",\r\n year: \"numeric\",\r\n })}\r\n {value.truckCount}\r\n {value.price}€ TTC\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default FacturationBoard;\r\n","export default __webpack_public_path__ + \"static/media/fleetBook_light.1e209329.png\";","export default __webpack_public_path__ + \"static/media/fleetBook_light_disabled.ff098281.png\";","import React, { Component, forwardRef } from \"react\";\r\nimport { Col } from \"react-bootstrap\";\r\nimport fr from \"date-fns/locale/fr\";\r\n\r\nimport \"react-perfect-scrollbar/dist/css/styles.css\";\r\nimport in_out from \"./fleetBook_light.png\";\r\nimport in_out_disable from \"./fleetBook_light_disabled.png\";\r\nimport FleetLoader from \"../../GenericComponent/FleetLoader/FleetLoader\";\r\nimport DatePicker, { registerLocale, setDefaultLocale } from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport moment from \"moment\";\r\n\r\nregisterLocale(\"fr\", fr);\r\nsetDefaultLocale(\"fr\");\r\n\r\nconst ExampleCustomInput = forwardRef(({ value, onClick }, ref) => (\r\n \r\n {value}\r\n \r\n));\r\n\r\nexport class ResumeBoard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n componentSize: props.componentSize,\r\n sumCount: 0,\r\n isResumeAvailable: true,\r\n isLoading: false,\r\n error: \"\",\r\n date: new Date(),\r\n };\r\n }\r\n\r\n fetchData = () => {\r\n let tours = [];\r\n\r\n let url = new URL(this.props.BASE_URL + \"/tours/full\");\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n if (this.state.date) {\r\n const new_date = moment(this.state.date).format(\"YYYY-MM-DD\");\r\n url = new URL(\r\n this.props.BASE_URL +\r\n \"/tours/full?start_date=\" +\r\n new_date +\r\n \"&end_date=\" +\r\n new_date\r\n );\r\n }\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = {\r\n method: \"GET\",\r\n headers: myHeaders,\r\n cache: \"no-cache\",\r\n };\r\n\r\n console.log(\"GET request @ \", this.props.BASE_URL + \"/tours/full\");\r\n return fetch(url, myInit)\r\n .then((response) => response.json())\r\n .then(async (result) => {\r\n if (result.status === \"Success\") {\r\n tours = result.tours || [];\r\n return tours;\r\n }\r\n })\r\n .then((data) => {\r\n return data;\r\n })\r\n .catch((error) => {\r\n this.setState({\r\n isLoading: false,\r\n error: \"Problème lors de la récuperation des tournées.\",\r\n });\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n });\r\n };\r\n\r\n fetchDataServerSidedResume = () => {\r\n let url = new URL(this.props.BASE_URL + \"/document/resumeForDate\");\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n if (this.state.date) {\r\n const new_date = moment(this.state.date).format(\"YYYY-MM-DD\");\r\n url = new URL(\r\n this.props.BASE_URL +\r\n \"/document/resumeForDate?start_date=\" +\r\n new_date +\r\n \"&end_date=\" +\r\n new_date\r\n );\r\n }\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = {\r\n method: \"GET\",\r\n headers: myHeaders,\r\n cache: \"no-cache\",\r\n };\r\n\r\n console.log(\r\n \"GET request @ \",\r\n this.props.BASE_URL + \"/document/resumeForDate\"\r\n );\r\n return fetch(url, myInit)\r\n .then((response) => response.json())\r\n .then(async (result) => {\r\n if (result.status === \"Success\" && result.url) {\r\n this.setState({\r\n error: \"\",\r\n });\r\n return result.url;\r\n } else {\r\n this.setState({\r\n error: \"Pas de tournée pour ce jour.\",\r\n });\r\n return null;\r\n }\r\n })\r\n .catch((error) => {\r\n this.setState({\r\n isLoading: false,\r\n error: \"Problème lors de la récuperation des tournées.\",\r\n });\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n });\r\n };\r\n\r\n downloadResume = async (e) => {\r\n this.setState({\r\n isLoading: true,\r\n });\r\n\r\n let data_resume = await this.fetchDataServerSidedResume();\r\n\r\n if (data_resume) {\r\n window.open(data_resume, \"_blank\");\r\n }\r\n\r\n setTimeout(() => {\r\n this.setState({\r\n isLoading: false,\r\n });\r\n }, 1000);\r\n };\r\n\r\n setStartDate = (date) => {\r\n this.setState({\r\n date: date,\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

Résumé

\r\n
\r\n \r\n \r\n
Résumé indisponible
\r\n

\r\n Des tournées sont encore en cours, revenez à la fin pour obtenir\r\n le resumé de la journée.\r\n

\r\n
\r\n \r\n \r\n
Résumé disponible
\r\n

Le résumé des tournées de la journée est disponible.

\r\n this.setStartDate(date)}\r\n customInput={}\r\n locale=\"fr\"\r\n dateFormat=\"dd/MM/yyyy\"\r\n />\r\n\r\n
\r\n this.downloadResume(e)}\r\n disabled={this.state.isLoading}\r\n >\r\n Télécharger\r\n \r\n
\r\n
\r\n \r\n {this.state.error}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ResumeBoard;\r\n","import React from \"react\"\r\nimport ContentLoader from \"react-content-loader\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faList, faStickyNote} from \"@fortawesome/free-solid-svg-icons\";\r\nimport {Link} from \"react-router-dom\";\r\n\r\nfunction ReserveBoardList(props){\r\n if(props.list && props.list.length > 0){\r\n return props.list.map((value, index) => {\r\n return (\r\n
\r\n \r\n {value.delivery_detail_id ? value.delivery_detail_id : \"00000000\"}\r\n {value.message ? value.message : \"n.c\"}\r\n \r\n
\r\n )\r\n })\r\n }else{\r\n return (\r\n Aucune réserve émise.\r\n );\r\n\r\n }\r\n}\r\n\r\nexport default ReserveBoardList","import React, { Component } from \"react\";\r\nimport { Badge, Col, Container, Row } from \"react-bootstrap\";\r\n\r\nimport \"react-perfect-scrollbar/dist/css/styles.css\";\r\nimport PerfectScrollbar from \"react-perfect-scrollbar\";\r\nimport ReserveBoardList from \"./ReserveBoardList/ReserveBoardList\";\r\n\r\nlet timerFetchReserves = null;\r\nexport class ReserveBoard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n componentSize: props.componentSize,\r\n reserves: null,\r\n sumCount: 0,\r\n };\r\n this._isMounted = false;\r\n }\r\n\r\n fetchReserves = () => {\r\n const url = new URL(this.props.BASE_URL.concat(\"/reserve\"));\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = { method: \"GET\", headers: myHeaders, cache: \"no-cache\" };\r\n\r\n console.log(\"GET request @ \", this.props.BASE_URL.concat(\"/reserve\"));\r\n fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n if (result.status === \"Success\") {\r\n this._isMounted &&\r\n this.setState({\r\n reserves: result.reserves,\r\n });\r\n }\r\n });\r\n } else {\r\n console.log(\"Mauvaise réponse du réseau\");\r\n response.json().then(function (result) {\r\n console.log(\"result\", result);\r\n });\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n this._isMounted = true;\r\n this.fetchReserves();\r\n timerFetchReserves = setInterval(() => {\r\n this.fetchReserves();\r\n }, 10000);\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (this.state.reserves !== prevState.reserves) {\r\n this.setState({\r\n sumCount: this?.state?.reserves?.length,\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n // Lors du déchargement de la page, on de-register le setInterval qui va fetch les réserves.\r\n this._isMounted = false;\r\n clearInterval(timerFetchReserves);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n Réserves {this.state.sumCount}\r\n

\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ReserveBoard;\r\n","import React, { Component } from \"react\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faSignOutAlt } from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nimport lottie from \"lottie-web\";\r\nimport animationData from \"./3075-delivery-van\";\r\n\r\nimport {\r\n Container,\r\n Row,\r\n Col,\r\n Form,\r\n Button,\r\n InputGroup,\r\n Badge,\r\n} from \"react-bootstrap\";\r\n\r\nimport \"../App/App.scss\";\r\nimport \"./Home.css\";\r\nimport marker from \"../EmptyListComponent/kekwgris.png\";\r\nimport { VehiclesOnTour } from \"../DashboardComponent/VehiclesOnTour/VehiclesOnTour\";\r\nimport { Delivery } from \"../DashboardComponent/Delivery/Delivery\";\r\nimport { IssueBoard } from \"../DashboardComponent/IssueBoard/IssueBoard\";\r\nimport FacturationBoard from \"../DashboardComponent/FacturationBoard/FacturationBoard\";\r\nimport { logout } from \"../../reducer/Action\";\r\nimport { connect } from \"react-redux\";\r\nimport { Login } from \"../Login/Login\";\r\nimport { withRouter } from \"react-router\";\r\nimport { compose } from \"redux\";\r\nimport ResumeBoard from \"../DashboardComponent/ResumeBoard/ResumeBoard\";\r\nimport ReserveBoard from \"../DashboardComponent/ReserveBoard/ReserveBoard\";\r\n\r\nexport class Home extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isAuthenticated: false,\r\n facturations: [\r\n {\r\n id: 1,\r\n date: \"2020-07-02T00:00\",\r\n truckCount: 42,\r\n price: 140,\r\n },\r\n {\r\n id: 1,\r\n date: \"2020-06-02T00:00\",\r\n truckCount: 23,\r\n price: 545,\r\n },\r\n {\r\n id: 1,\r\n date: \"2020-05-02T00:00\",\r\n truckCount: 45,\r\n price: 587,\r\n },\r\n {\r\n id: 1,\r\n date: \"2020-04-02T00:00\",\r\n truckCount: 903,\r\n price: 123,\r\n },\r\n ],\r\n openIssues: [],\r\n solvedIssues: [],\r\n };\r\n }\r\n\r\n componentDidMount() {}\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n

Dashboard

\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state /*, ownProps*/) => {\r\n return {\r\n facturations: state.facturations,\r\n canceledBls: state.canceledBls,\r\n returnBls: state.canceledBls,\r\n BASE_URL: state.BASE_URL,\r\n };\r\n};\r\nconst mapDispatchToProps = { logout };\r\n\r\nexport default compose(\r\n withRouter,\r\n connect(mapStateToProps, mapDispatchToProps)\r\n)(Home);\r\n","export default __webpack_public_path__ + \"static/media/background_decoration.a43c6a84.png\";","export default __webpack_public_path__ + \"static/media/undraw_map_re_60yf@2x.3c5bd65b.png\";","import React, { Component } from \"react\";\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\nimport \"../../../App/App.scss\";\r\nimport \"./StatusComponent.css\";\r\n\r\nexport class StatusComponent extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n statusColorClass: null,\r\n statusText: \"\",\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.status !== this.props.status || prevProps.isLate !== this.props.isLate) {\r\n this.computeStatus();\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.computeStatus();\r\n }\r\n\r\n computeStatus() {\r\n let newStatusText = \"\";\r\n let newColorClass = \"\";\r\n\r\n switch (this.props.status) {\r\n case \"CREATED\":\r\n newStatusText = \"Créée\";\r\n newColorClass = \"ok\";\r\n break;\r\n case \"STARTED\":\r\n newStatusText = \"Débutée\";\r\n newColorClass = \"ok\";\r\n break;\r\n case \"DONE\":\r\n newStatusText = \"Terminée\";\r\n newColorClass = \"ok\";\r\n break;\r\n case \"LATE\":\r\n newStatusText = \"En retard\";\r\n newColorClass = \"late\";\r\n break;\r\n case \"ISSUE\":\r\n newStatusText = \"Problème\";\r\n newColorClass = \"issue\";\r\n break;\r\n default:\r\n newStatusText = \"default\";\r\n newColorClass = \"issue\";\r\n }\r\n\r\n if (this.props.isLate) {\r\n this.setState({\r\n statusText: newStatusText,\r\n statusColorClass: \"late\",\r\n });\r\n } else {\r\n this.setState({\r\n statusText: newStatusText,\r\n statusColorClass: newColorClass,\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n {this.state.statusColorClass === \"late\" ? (\r\n En retard}\r\n >\r\n {({ ref, ...triggerHandler }) => (\r\n
\r\n \r\n \r\n
\r\n )}\r\n \r\n ) : (\r\n
\r\n \r\n \r\n
\r\n )}\r\n\r\n {this.state.statusText}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default StatusComponent;\r\n","import React from \"react\";\r\nimport StatusComponent from \"../StatusComponent/StatusComponent\";\r\n\r\nimport { Card, OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\n\r\nimport \"../../../App/App.scss\";\r\nimport \"./tourItemDashboard.scss\";\r\n\r\nimport Skeleton from \"react-loading-skeleton\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport {\r\n faExclamationCircle,\r\n faWarning,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nconst TourItemDashboard = (props) => {\r\n return (\r\n
\r\n \r\n props.selectedTourID === props.tour.tour_id ||\r\n !props.isMapReady ||\r\n props.isMapUpdating\r\n ? props.setselectedTourID(null)\r\n : props.setselectedTourID(props.tour.tour_id)\r\n }\r\n >\r\n
\r\n
\r\n \r\n Véhicule {props.tour.vehicule_key || }{\" \"}\r\n \r\n N° {props.tour.tour_key || \"tour_key\"}\r\n \r\n \r\n \r\n {\r\n /*\r\n Si la tournée n'est pas commencé, on affiche qu'aucune étape n'est en cours de livraison.\r\n Si non : On va vérifier qu'il y'a bien des étapes encore à livrer\r\n Si oui : On affiche l'étape en cours (retourné par le back, la première étape non livré restante)\r\n Si non : On affiche rien\r\n Si non : On affiche \"Tournée terminée\"\r\n */\r\n\r\n props.tour.status === \"CREATED\"\r\n ? \"Aucune étape en cours pour cette tournée\"\r\n : props?.tour?.vehicule_and_datas\r\n ?.steps_handled_left_to_deliver > 0\r\n ? props.tour.vehicule_and_datas?.current_step?.step_id\r\n ? `${\r\n props.tour.vehicule_and_datas?.current_step?.end_address\r\n ?.street ?? \"\"\r\n } ${\r\n props.tour.vehicule_and_datas?.current_step?.end_address\r\n ?.city ?? \"\"\r\n } ${\r\n props.tour.vehicule_and_datas?.current_step?.end_address\r\n ?.zipcode ?? \"\"\r\n }`\r\n : null\r\n : \"Tournée terminée\"\r\n }\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n {props.tour?.issues_kpi?.number_of_open_issue > 0 ||\r\n props.tour?.issues_kpi?.number_of_solved_issue > 0 ? (\r\n
\r\n \r\n {props.tour?.issues_kpi?.number_of_open_issue > 0\r\n ? `Des réclamations sont ouvertes pour cette tournée. Vous pouvez les traiter en cliquant sur le bouton \"Réclamations\" en haut à droite.`\r\n : `Toutes les réclamations de cette tournée ont été traitées.`}\r\n \r\n }\r\n >\r\n \r\n 0\r\n ? faWarning\r\n : faExclamationCircle\r\n }\r\n color={\r\n props.tour?.issues_kpi?.number_of_open_issue > 0\r\n ? \"#ff1400\"\r\n : \"#5e5e5e\"\r\n }\r\n />\r\n \r\n \r\n
\r\n ) : null}\r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nfunction areEqual(prevProps, nextProps) {\r\n return (\r\n prevProps.tour.status === nextProps.tour.status &&\r\n prevProps.tour.vehicule_and_datas?.current_step?.step_id ===\r\n nextProps.tour.vehicule_and_datas?.current_step?.step_id &&\r\n prevProps.isMapUpdating === nextProps.isMapUpdating &&\r\n prevProps.isMapReady === nextProps.isMapReady &&\r\n prevProps.selectedTourID === nextProps.selectedTourID &&\r\n prevProps.setselectedTourID === nextProps.setselectedTourID &&\r\n prevProps.tour.issues_kpi === nextProps.tour.issues_kpi\r\n );\r\n}\r\n\r\nexport default React.memo(TourItemDashboard, areEqual);\r\n","import React, { useState, useContext, useRef } from \"react\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faEllipsisV } from \"@fortawesome/free-solid-svg-icons\";\r\nimport StatusComponent from \"../StatusComponent/StatusComponent\";\r\n\r\nimport { Card } from \"react-bootstrap\";\r\n\r\nimport \"../../../App/App.scss\";\r\nimport \"./tour-item-dashboard-loader.scss\";\r\n\r\nimport SkeletonLoader from \"tiny-skeleton-loader-react\";\r\n\r\nconst TourItemDashboardLoader = (props) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default React.memo(TourItemDashboardLoader);\r\n","export default __webpack_public_path__ + \"static/media/background_decoration2x.0c3a14d1.png\";","import React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faBullhorn, faList } from \"@fortawesome/free-solid-svg-icons\";\r\nimport \"./dashboard-claim.scss\";\r\n\r\nconst DashboardClaim = (props) => {\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 {\"BL \" + props.claim?.delivery_detail_key || \"BL 00000000\"}\r\n \r\n \r\n
\r\n
\r\n \r\n {new Date(props.claim?.issue_created_at).toLocaleDateString(\r\n \"fr-FR\",\r\n {\r\n year: \"numeric\",\r\n month: \"short\",\r\n day: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n }\r\n ) || \"Pas d'information de date\"}\r\n \r\n
\r\n
\r\n
\r\n

\r\n {\" \"}\r\n {props.claim?.issue_reason_message ||\r\n \"Pas d'information sur la raison\"}\r\n

\r\n {props.status === \"open\" ? (\r\n props.solveIssueHandler(props.claim?.issue_id)}\r\n disabled={props.isLoading}\r\n >\r\n Traiter\r\n \r\n ) : (\r\n
\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default DashboardClaim;\r\n","import React, { useEffect } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faBullhorn } from \"@fortawesome/free-solid-svg-icons\";\r\nimport bgdeco from \"../../../../assets/images/background/background_decoration2x.png\";\r\nimport chevrons from \"../../../../assets/images/decoration/chevron@2x.png\";\r\nimport \"./dashboard-claim-modal.scss\";\r\nimport SimpleBarReact from \"simplebar-react\";\r\nimport DashboardClaim from \"../dashboard-claim/dashboard-claim\";\r\n\r\nfunction DashboardClaimModal({date, issues, FetchClaimData, show, base_url, onHide}) {\r\n\r\n function SolveIssue(issueId) {\r\n const url = new URL(base_url.concat(\"/issues/\", issueId));\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = {\r\n method: \"PUT\",\r\n headers: myHeaders,\r\n cache: \"no-cache\",\r\n body: JSON.stringify({\r\n status: \"SOLVED\",\r\n }),\r\n };\r\n\r\n fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n if (result.status === \"Success\" && result.isIssueUpdated) {\r\n FetchClaimData();\r\n }\r\n });\r\n } else {\r\n response.json().then((result) => {\r\n console.error(\"Mauvaise réponse du réseau\", result);\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n });\r\n }\r\n\r\n /******\r\n *\r\n * Effects\r\n *\r\n ******/\r\n\r\n useEffect(() => {\r\n if (show) {\r\n FetchClaimData();\r\n }\r\n }, [show]);\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Réclamations enregistrées
\r\n

\r\n Retrouvez et gérez toutes les réclamations traitées ou non depuis\r\n cet écran.\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Réclamations ouvertes
\r\n
\r\n
\r\n
\r\n \r\n {issues?.openIssues?.length > 0 ? (\r\n issues?.openIssues?.map((claim, index) => (\r\n \r\n ))\r\n ) : (\r\n
\r\n

\r\n Aucune réclamation ouverte pour la date du{\" \"}\r\n {date?.toLocaleDateString(\"fr-FR\", {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n })}\r\n

\r\n
\r\n )}\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Réclamations traitées
\r\n
\r\n
\r\n
\r\n \r\n {issues?.solvedIssues?.length > 0 ? (\r\n issues?.solvedIssues?.map((claim, index) => (\r\n \r\n ))\r\n ) : (\r\n
\r\n

\r\n Aucune réclamation traitée pour la date du{\" \"}\r\n {date?.toLocaleDateString(\"fr-FR\", {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n })}\r\n

\r\n
\r\n )}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default DashboardClaimModal;\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAAiCAYAAAAH1WqkAAAABHNCSVQICAgIfAhkiAAABARJREFUaEPlmttLFFEYwL8zZy5rkqYg2cVKiuili9AdyqjIB9+DoJeiXGrVaMGnXvYpeoitJqWWHnqI3qP/oAwiJdfU0kroNbASIW139pw5ndmlvO3MfjONuNo8Leycj/M733e+6xBwnkRC1eprbitAzgkiei2mtkMs9jX/X9AndatatSubpLy1nJDPEO0YCyrq77oHyU2aUBtA8EwO9HG5x59BZRIHWt9Q+4wAtM4RMp7V4Chc7JwIJNg0q6gmTlGi6H/WC0X5mGuLDQaSJxcZprmdaKThz3pmc8ZAGwwKT/TUvScEyPmFGxIAY5YGx33DJ5MVtFJroQKMRZAEPljRjmHf8Ka5OaKRHQvXMYAc+5kZhK6uab8yJbg5LbW9pthCAWLU0kizL/ju21t11TjsuhGSk/BxX/DaA7OJAqkuJjMoPNEfmv2EwH63jQohRiyVN8Ol+A/UqT6+s45mlDPSzOV5ujwKGbHa2t+j5Dlm3t29k1Cx0e39IPAEenrqDZX3SqGLTOnv/QQYtig7gYaXWqdUO+QFb3E2BLHroyj4RELR6mt3U0FqPOGV72mIJmYwMgtaWS3wti0D0uQgBn7WHLHwYByDaHQKc6qA0TwjaWhv/4SSh9E8En7+PcTBD1hgnCx7+CxPQzz+y+1AFzsgB56y10DINleHB7Di4Yt73kfmZoOL3pLwjDajEwiM2fPcW4jFx0M1exfNu4ccFLx4I73JaTT8o/uNlNkHvL39EsBPTA7IDDUz90DdwZ23Vgr8+tq9bgmOg8E4y7JvU+m58N7gfuAh4jg8VAwFjOYp9MHlji9os/cJXxocCQ8gXmUh0hIWPBe24KrSHzq8TQegszOLA8fCC+jNzrAWrzAyT4NS8zqHg15atfxqvq5uD1XsdW4yuRCZHIM0HryQ4TXI9PaF/NXoEepuWNHOmygTzR+oN3xe85HJ53BhvnNyle8kOSXgbU4m/INT9rJEmFtl4I6Ht+Gll7bz93yan1leU6+Wpq6GZOrYsLaCPHtpU8dCL3ciE2o4W6XQjmP8x5RVFit+8nVM4uI3Xy+laadMRaesKE37rNAw0EtRm6OLlKUoS8sMerGp/5eNCBz0sOy+hNt6Crvp6Kv1hIUu904rErpg6qsF2pmq+GkvyxFSnxwhHXAtOvwOFJLJWlpBT5f9QEFOUqbkJKWqGLgQctalwwlfI6TU3S26oEdcqydhv7euXBtBV2/yRa3nzj63/DvIFCVv6sbDez2y2rq6cCOBh4aplEa51UqVEIeG8jpGFHvXwj0GhS7c8ZU8Jp7JpYNMSmfjuANfX/OUEHJWTkiHZOe0JYwPAyivbJaar4AAE9KiV0G2qCPUaMxr2lbeobu7RYT9Bn/Sglg9vRYpAAAAAElFTkSuQmCC\"","export const tour_status = {\r\n ALL: \"all\",\r\n DONE: \"done\",\r\n LATE: \"late\",\r\n ISSUE: \"issue\",\r\n CREATED: \"created\",\r\n STARTED: \"started\",\r\n properties: {\r\n all: { display_name: \"Toutes\", color: \"#079992\" },\r\n done: { display_name: \"Terminée\", color: \"#079992\" },\r\n late: { display_name: \"En retard\", color: \"#ffe085\" },\r\n issue: { display_name: \"Problème\", color: \"#ff9979\" },\r\n started: { display_name: \"Démarée\", color: \"#079992\" },\r\n created: { display_name: \"Créée\", color: \"#e55039\" },\r\n },\r\n};\r\n","import React from \"react\";\r\nimport \"./kpi.scss\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nconst Kpi = (props) => {\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {props.value ?? 0}\r\n {props.title || \"kpi_title\"}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default React.memo(Kpi);\r\n","import React, { forwardRef } from \"react\";\r\nimport { Button } from \"react-bootstrap\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faCalendarAlt } from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nconst CustomDatePickerDashboard = forwardRef(({ value, onClick }, ref) => (\r\n \r\n {value}\r\n \r\n));\r\n\r\nexport default React.memo(CustomDatePickerDashboard);\r\n","import React, {\r\n useCallback,\r\n useEffect,\r\n useState,\r\n useRef,\r\n Suspense,\r\n} from \"react\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport {\r\n faBullhorn,\r\n faChevronRight,\r\n faClipboardList,\r\n faFileDownload,\r\n faGlobeEurope,\r\n faWarning,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport bgdeco2 from \"../../../assets/images/background/background_decoration.png\";\r\nimport noDataIllu from \"../../../assets/images/illustration/undraw_map_re_60yf@2x.png\";\r\nimport { useHistory, useLocation } from \"react-router\";\r\n\r\nimport TourItemDashboard from \"../../pages/Dashboard/TourItemDashboard/TourItemDashboard\";\r\nimport TourItemDashboardLoader from \"../../pages/Dashboard/tour-item-dashboard-loader/tour-item-dashboard-loader\";\r\nimport DashboardClaimModal from \"../../pages/Dashboard/dashboard-claim-modal/dashboard-claim-modal\";\r\nimport { Button, Spinner } from \"react-bootstrap\";\r\n\r\nimport SimpleBarReact from \"simplebar-react\";\r\nimport \"simplebar/dist/simplebar.min.css\";\r\nimport DatePicker, { registerLocale } from \"react-datepicker\";\r\nimport fr from \"date-fns/locale/fr\";\r\nimport { toast } from \"react-toastify\";\r\n\r\nimport { tour_status } from \"../../../constants/tour_status\";\r\n\r\nimport {\r\n CircularProgressbarWithChildren,\r\n buildStyles,\r\n} from \"react-circular-progressbar\";\r\nimport \"react-circular-progressbar/dist/styles.css\";\r\n\r\nimport \"../../App/App.scss\";\r\nimport \"./Home.scss\";\r\nimport { io } from \"socket.io-client\";\r\nimport SkeletonLoader from \"tiny-skeleton-loader-react\";\r\n\r\nimport Kpi from \"../../pages/Dashboard/kpi/kpi\";\r\nimport CustomDatePickerDashboard from \"../../pages/Dashboard/custom-date-picker-dashboard/custom-date-picker-dashboard\";\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { setNavWidth } from \"../../../reducer/Action\";\r\n\r\nregisterLocale(\"fr\", fr);\r\n\r\nconst MapFleetDashboard = React.lazy(() =>\r\n import(\"../../pages/Dashboard/map-fleet-dashboard/map-fleet-dashboard\")\r\n);\r\n\r\nconst FluxFleetDashboard = React.lazy(() =>\r\n import(\"../../pages/Dashboard/flux-fleet-dashboard/flux-fleet-dashboard\")\r\n);\r\n\r\nconst HomeV2 = () => {\r\n /******\r\n *\r\n * States\r\n *\r\n ******/\r\n\r\n const [tours, setTours] = useState([]);\r\n const [kpi, setKpi] = useState([]);\r\n const [flux, setFlux] = useState([]);\r\n\r\n const [showClaiming, setShowClaiming] = useState(false);\r\n const [showReserve, setShowReserve] = useState(false);\r\n const [date, setDate] = useState(new Date());\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isDownloadingResume, setIsDownloadingResume] = useState(false);\r\n\r\n const [selectedTourID, setSelectedTourID] = useState(null);\r\n const [selectedTour, setSelectedTour] = useState(null);\r\n const [tourStatus, setTourStatus] = useState(\"all\");\r\n const [fluxStatus, setFluxStatus] = useState(\"all\");\r\n const [reservesNumber, setReservesNumber] = useState(0);\r\n\r\n const [isMapReady, setIsMapReady] = useState(false);\r\n const [isMapUpdating, setIsMapUpdating] = useState(false);\r\n \r\n const [issues, setIssues] = useState({\r\n openIssues: [],\r\n solvedIssues: [],\r\n });\r\n\r\n const BASE_URL = useSelector((state) => state.BASE_URL);\r\n const ref = useRef();\r\n const history = useHistory();\r\n\r\n /******\r\n *\r\n * functions\r\n *\r\n ******/\r\n\r\n // Get the resume for a given date\r\n function FetchDataServerSidedResume() {\r\n let url = new URL(BASE_URL + \"/document/resumeForDate\");\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n if (date) {\r\n const new_date = date?.toISOString?.().substring(0, 10);\r\n url = new URL(\r\n BASE_URL +\r\n \"/document/resumeForDate?start_date=\" +\r\n new_date +\r\n \"&end_date=\" +\r\n new_date\r\n );\r\n } else {\r\n return false;\r\n }\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = {\r\n method: \"GET\",\r\n headers: myHeaders,\r\n cache: \"no-cache\",\r\n };\r\n\r\n return fetch(url, myInit)\r\n .then((response) => response.json())\r\n .then(async (result) => {\r\n if (result.status === \"Success\" && result.url) {\r\n return result.url;\r\n } else {\r\n toast.info(\"Pas de tournée pour ce jour.\");\r\n }\r\n })\r\n .catch((error) => {\r\n toast.error(\"Problème lors de la récupération des tournées.\");\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n });\r\n }\r\n\r\n async function FetchClaimData() {\r\n const url = new URL(\r\n BASE_URL.concat(\r\n \"/issues/withBlsAndTours?date=\" + date?.toISOString?.().substring(0, 10)\r\n )\r\n );\r\n\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = { method: \"GET\", headers: myHeaders, cache: \"no-cache\" };\r\n\r\n await fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n if (result.status === \"Success\") {\r\n setIssues({\r\n openIssues: [...result.openIssues],\r\n solvedIssues: [...result.solvedIssues],\r\n });\r\n }\r\n });\r\n } else {\r\n toast.error(\"Problème lors de la récupération des données.\");\r\n }\r\n })\r\n .catch((error) => {\r\n toast.error(\"Problème réseau lors de la récupération des données.\");\r\n });\r\n }\r\n\r\n // Handle the download resume button in order to Download the resume\r\n async function DownloadResume() {\r\n setIsLoading(true);\r\n setIsDownloadingResume(true);\r\n\r\n let data_resume = await FetchDataServerSidedResume();\r\n\r\n if (data_resume) {\r\n window.open(data_resume, \"_blank\");\r\n }\r\n\r\n setTimeout(() => {\r\n setIsLoading(false);\r\n setIsDownloadingResume(false);\r\n }, 1000);\r\n }\r\n\r\n const isFiltering = useCallback(() => {\r\n return tourStatus !== \"all\";\r\n }, [tourStatus]);\r\n\r\n // filter all the tours by the status\r\n const filteringFunction = useCallback(() => {\r\n if (!tours) {\r\n return [];\r\n }\r\n\r\n if (!isFiltering()) {\r\n return tours;\r\n }\r\n\r\n return tours.filter((x) => {\r\n return x.status?.toUpperCase() === tourStatus?.toUpperCase();\r\n });\r\n }, [tours, tourStatus, isFiltering]);\r\n\r\n const isToday = (someDate) => {\r\n const today = new Date();\r\n return (\r\n someDate.getDate() === today.getDate() &&\r\n someDate.getMonth() === today.getMonth() &&\r\n someDate.getFullYear() === today.getFullYear()\r\n );\r\n };\r\n\r\n /******\r\n *\r\n * Effects\r\n *\r\n ******/\r\n\r\n /*****\r\n * will set the selected tour in order to use in the map detail when the user click on a tour\r\n */\r\n\r\n // socket IO initialization and event listeners declaration\r\n useEffect(() => {\r\n // Initialize the socket to the API server\r\n const socket = io(process.env.REACT_APP_SOCKET_API_URL, {\r\n query: {\r\n Authorization: localStorage.getItem(\"fleetToken\"),\r\n },\r\n });\r\n\r\n // event received every time a tour is updated\r\n socket.on(\"tour-updated\", (data) => {\r\n // console.log(\"tour-updated()\", data);\r\n\r\n setTours((_tours) => {\r\n const new_tours = [..._tours];\r\n\r\n const indexToReplace = new_tours.findIndex(\r\n (tour) => tour.tour_id === data.tour_id\r\n );\r\n if (indexToReplace !== -1) new_tours[indexToReplace] = data;\r\n\r\n return new_tours;\r\n });\r\n });\r\n\r\n // event received every time the KPIs are updated\r\n socket.on(\"kpi-updated\", (data) => {\r\n // console.log(\"kpi-updated()\", data);\r\n setKpi(data);\r\n });\r\n\r\n // event received every time the flux is updated\r\n socket.on(\"flux-updated\", (data) => {\r\n // console.log(\"flux-updated()\", data);\r\n setFlux((_flux) => {\r\n return [data, ..._flux];\r\n });\r\n });\r\n }, []);\r\n\r\n // Handle the tour-item click\r\n useEffect(() => {\r\n // if a tour is selected, set it to the selected tour state\r\n if (selectedTourID) {\r\n const tour = tours?.find((t) => t.tour_id === selectedTourID);\r\n if (tour) setSelectedTour(tour);\r\n } else {\r\n // else, set it to null\r\n setIsMapUpdating(true);\r\n setTimeout(() => {\r\n setSelectedTour(null);\r\n setIsMapUpdating(false);\r\n }, 100);\r\n }\r\n }, [selectedTourID, tours]);\r\n\r\n // simple-bar recalculate width and height\r\n useEffect(() => {\r\n ref.current.recalculate();\r\n });\r\n\r\n // Did mount effect\r\n useEffect(() => {\r\n \r\n async function FetchDashboardData() {\r\n setIsLoading(true);\r\n const url = new URL(\r\n BASE_URL.concat(\r\n \"/dashboard/?date=\" + date?.toISOString?.().substring(0, 10)\r\n )\r\n );\r\n\r\n const token = localStorage.getItem(\"fleetToken\");\r\n \r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = { method: \"GET\", headers: myHeaders, cache: \"no-cache\" };\r\n\r\n await fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n if (result.status === \"Success\") {\r\n if (result?.dashboardDatas) {\r\n setTours(\r\n result?.dashboardDatas?.tours_vehicles_and_steps_datas\r\n );\r\n setFlux(result?.dashboardDatas?.flux);\r\n setKpi(result?.dashboardDatas?.kpi);\r\n } else {\r\n setFlux([]);\r\n setTours([]);\r\n setKpi([]);\r\n }\r\n setIsLoading(false);\r\n }\r\n });\r\n } else {\r\n setIsLoading(false);\r\n toast.error(\"Problème lors de la récupération des données.\");\r\n }\r\n\r\n return;\r\n })\r\n .catch((error) => {\r\n setIsLoading(false);\r\n toast.error(\"Problème réseau lors de la récupération des données.\");\r\n });\r\n }\r\n \r\n FetchDashboardData();\r\n FetchClaimData();\r\n setSelectedTourID(null);\r\n setTourStatus(\"all\");\r\n }, [date, BASE_URL]);\r\n /******\r\n *\r\n * Return\r\n *\r\n ******/\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n

Tour de contrôle

\r\n

\r\n Pilotez votre flotte de véhicules depuis cette page pour la date\r\n du{\" \"}\r\n {date.toLocaleDateString(\"fr-FR\", {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n })}\r\n .\r\n

\r\n
\r\n
\r\n setDate(date)}\r\n customInput={}\r\n locale=\"fr\"\r\n dateFormat=\"dd MMM yyyy\"\r\n />\r\n DownloadResume(e)}\r\n disabled={\r\n isLoading || isDownloadingResume || tours?.length === 0\r\n }\r\n >\r\n {isDownloadingResume ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n
\r\n {\r\n history.replace({\r\n pathname: \"/restriction\",\r\n });\r\n }}\r\n >\r\n \r\n Réserves\r\n \r\n \r\n {kpi?.reserves_kpi?.open_reserves ?? 0}\r\n \r\n
\r\n\r\n
\r\n setShowClaiming(true)}\r\n style={{ marginLeft: \"15px\" }}\r\n >\r\n \r\n Réclamations\r\n \r\n \r\n {kpi?.issues_kpi?.open_issues ?? 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 \r\n
\r\n
\r\n
\r\n Véhicules en tournée\r\n \r\n {tours?.length ?? 0}\r\n \r\n
\r\n
\r\n setTourStatus(e.target.value)}\r\n className=\"tour-select\"\r\n disabled={tours?.length === 0 || selectedTourID}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {tours?.length > 0 ? (\r\n <>\r\n {filteringFunction()?.length > 0 ? (\r\n filteringFunction()?.map((tour, tour_index) => {\r\n return (\r\n \r\n );\r\n })\r\n ) : (\r\n
\r\n \r\n \r\n Aucun véhicule en tournée avec\r\n
le filtre sélectionné\r\n
\r\n \r\n Aucun véhicule n'est en tournée pour la date du{\" \"}\r\n {date.toLocaleDateString(\"fr-FR\", {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n })}{\" \"}\r\n avec le statut{\" \"}\r\n \r\n {\r\n tour_status?.properties[tourStatus]\r\n ?.display_name\r\n }\r\n \r\n .\r\n \r\n
\r\n )}\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 Aucun véhicule en tournée\r\n \r\n \r\n Aucun véhicule n'est en tournée pour la date du{\" \"}\r\n {date.toLocaleDateString(\"fr-FR\", {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n })}\r\n .\r\n \r\n
\r\n )}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Carte des étapes\r\n \r\n {tours?.length ?? 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
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Étape en cours\r\n \r\n {\r\n /*\r\n Si la tournée n'est pas commencé, on affiche qu'aucune étape n'est en cours de livraison.\r\n Si non : On va vérifier qu'il y'a bien des étapes encore à livrer\r\n Si oui : On affiche l'étape en cours (retourné par le back, la première étape non livré restante)\r\n Si non : On affiche rien\r\n Si non : On affiche \"Tournée terminée\"\r\n */\r\n\r\n selectedTour?.status === \"CREATED\"\r\n ? \"Aucune étape en cours pour cette tournée\"\r\n : selectedTour?.vehicule_and_datas\r\n ?.steps_handled_left_to_deliver > 0\r\n ? selectedTour.vehicule_and_datas?.current_step\r\n ?.step_id\r\n ? selectedTour?.vehicule_and_datas?.current_step\r\n ?.end_address?.name\r\n : null\r\n : \"Tournée terminée\"\r\n }\r\n \r\n
\r\n
\r\n \r\n x.status === \"DELIVERED\" ||\r\n x.status === \"PARTIALLY_DELIVERED\" ||\r\n x.status === \"CANCELED\"\r\n )?.length ?? 0) /\r\n selectedTour?.vehicule_and_datas?.steps?.length) *\r\n 100\r\n }\r\n styles={buildStyles({\r\n stroke: \"#d6d6d6\",\r\n })}\r\n >\r\n {/* Put any JSX content in here that you'd like. It'll be vertically and horizontally centered. */}\r\n \r\n \r\n {selectedTour?.vehicule_and_datas?.steps?.filter(\r\n (x) =>\r\n x.status === \"DELIVERED\" ||\r\n x.status === \"PARTIALLY_DELIVERED\" ||\r\n x.status === \"CANCELED\"\r\n )?.length ?? 0}\r\n /\r\n {selectedTour?.vehicule_and_datas?.steps?.length ??\r\n \"00\"}\r\n \r\n
\r\n \r\n étapes\r\n
\r\n \r\n
\r\n \r\n Aller à la tournée\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {\r\n // // Permet de mock la réception d'un event du back\r\n // setFlux((_flux) => {\r\n // return [\r\n // {\r\n // _id: Math.random(0).toString(),\r\n // level: \"INFO\",\r\n // message: \"Test\",\r\n // type: \"CREATE\",\r\n // short_label: \"STEP_STARTED\",\r\n // creation_date: new Date().toISOString(),\r\n // client_id: 1,\r\n // vehicle_key: \"ABCD\",\r\n // },\r\n // ..._flux,\r\n // ];\r\n // });\r\n // }}\r\n >\r\n {isToday(new Date(date)) ? (\r\n <>\r\n
Flux en direct
\r\n
\r\n \r\n ) : (\r\n <>\r\n
\r\n Flux du{\" \"}\r\n {date.toLocaleDateString(\"fr-FR\", {\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n })}\r\n
\r\n \r\n )}\r\n
\r\n
\r\n setFluxStatus(e.target.value)}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n }\r\n >\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n setShowClaiming(false)}\r\n date={date}\r\n base_url={BASE_URL}\r\n FetchClaimData={FetchClaimData}\r\n issues={issues}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default HomeV2;\r\n","export default \"data:image/png;base64,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\"","import React from 'react';\r\nimport \"./platform-color-badge.scss\";\r\n\r\nconst BadgeColor = (props) => {\r\n return (\r\n
\r\n
\r\n PLATEFORME N° {props.platform || \"platform_id\"}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default BadgeColor;\r\n","import React, { useState, useContext, useRef, useEffect } from \"react\";\r\n\r\nimport { Card, OverlayTrigger, Tooltip, Button, Form } from \"react-bootstrap\";\r\nimport \"../../../App/App.scss\";\r\nimport \"./tour-item-fleet-management.scss\";\r\nimport truck from \"../../../../assets/images/optimisation/truck.png\";\r\nimport Skeleton from \"react-loading-skeleton\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faTrash, faWarning } from \"@fortawesome/free-solid-svg-icons\";\r\nimport BadgeColor from \"../platform-color-badge\";\r\n\r\nconst RenderTooltip = (props) => (\r\n \r\n Terminez la configuration du véhicule en cliquant ici pour pouvoir\r\n l'utiliser dans l'optimisation.\r\n \r\n);\r\n\r\nconst RenderTooltipDesactive = (props) => (\r\n \r\n Active/désactive le véhicule pour l'optimisation\r\n \r\n);\r\n\r\nconst RenderTooltipOpti = (props) => (\r\n \r\n Le véhicule est désactivé pour l'optimisation\r\n \r\n);\r\n\r\n\r\nconst TourItemFleetManagement = (props) => {\r\n return (\r\n !props.isFleetEditing ? props.handleEditVehicle(props.vehicle) : null}\r\n >\r\n
\r\n
\r\n {\"truck\"}\r\n
\r\n
\r\n {props.vehicle.starting_platform_id ? (\r\n \r\n ) : (\r\n PLATEFORME N/A\r\n )}\r\n \r\n Véhicule immatriculé {props.vehicle.imat || \"{N/A}\"}\r\n \r\n \r\n Clé véhicule {props.vehicle.vehicule_key || \"{N/A}\"}\r\n \r\n
\r\n
\r\n {props.isFleetEditing ? (\r\n \r\n props.handleToggleVehicleForOptimization(props.vehicle.vehicule_id)}\r\n checked={props?.vehicle?.is_disabled === 0}\r\n />\r\n \r\n ) : null}\r\n {!props.vehicle.starting_platform_id && !props.isFleetEditing ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n {props.vehicle.is_disabled && !props.isFleetEditing ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n\r\n {/* \r\n \r\n \r\n \r\n Pliable\r\n \r\n \r\n Solide\r\n \r\n \r\n 670m²\r\n */}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nfunction areEqual(prevProps, nextProps) {\r\n return (\r\n prevProps.vehicle.vehicule_id === nextProps.vehicle.vehicule_id &&\r\n prevProps.vehicle.vehicule_id === nextProps.vehicle.vehicule_id &&\r\n prevProps.vehicle.vehicule_id === nextProps.vehicle.vehicule_id &&\r\n prevProps.vehicle.vehicule_id === nextProps.vehicle.vehicule_id\r\n );\r\n}\r\n\r\nexport default TourItemFleetManagement;\r\n","// generate random string of 3 characters and number\r\nexport const generateRandomString = () => {\r\n let text = \"\";\r\n let possible =\r\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\r\n for (let i = 0; i < 3; i++) {\r\n text += possible.charAt(Math.floor(Math.random() * possible.length));\r\n }\r\n return text;\r\n};\r\n\r\nexport default generateRandomString;\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { Button, Col, Row, Modal, Card } from \"react-bootstrap\";\r\nimport \"./modal-management.scss\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport {\r\n faWeightHanging,\r\n faKey,\r\n faCube,\r\n faTrash,\r\n faPlusCircle,\r\n faTruck,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport imgBox from \"../../../../../assets/images/optimisation/box-img.png\";\r\nimport truck from \"../../../../../assets/images/optimisation/truck.png\";\r\nimport \"swiper/swiper-bundle.min.css\";\r\nimport \"swiper/components/navigation/navigation.scss\";\r\nimport \"swiper/components/pagination/pagination.scss\";\r\nimport \"swiper/components/scrollbar/scrollbar.scss\";\r\nimport SimpleBarReact from \"simplebar-react\";\r\nimport \"simplebar/dist/simplebar.min.css\";\r\n\r\nimport SwiperCore, { Navigation, Pagination } from \"swiper\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { v1 as uuidv1 } from \"uuid\";\r\nimport { generateRandomString } from \"../../../../../utils/string-generator\";\r\n\r\nimport { Formik, Form } from \"formik\";\r\nimport { useField } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport BadgeColor from \"../../../../pages/FleetManagement/platform-color-badge\";\r\nimport SkeletonLoader from \"tiny-skeleton-loader-react\";\r\n\r\nSwiperCore.use([Navigation, Pagination]);\r\n\r\nconst add_truck_title_and_desc = [\r\n {\r\n title: \"Ajout d'un véhicule\",\r\n desc: \"Commencez par saisir les information générales du véhicule\",\r\n },\r\n {\r\n title: \"Ajout d'un véhicule: définition des compartiments\",\r\n desc: \"Décrire les compartiments de votre véhicule\",\r\n },\r\n {\r\n title: \"Ajout d'un véhicule: platforme associée\",\r\n desc: \"Choisissez la plateforme associée à ce véhicule\",\r\n },\r\n {\r\n title: \"Ajout d'un véhicule: confirmation\",\r\n desc: \"Vérifiez les paramètres de votre camion\",\r\n },\r\n];\r\n\r\nexport const GenericFomikTextInput = ({ children, ...props }) => {\r\n // useField() returns [formik.getFieldProps(), formik.getFieldMeta()]\r\n // which we can spread on . We can use field meta to show an error\r\n // message if the field is invalid and it has been touched (i.e. visited)\r\n const [field, meta] = useField(props);\r\n\r\n return (\r\n
\r\n {children ? (\r\n \r\n ) : null}\r\n
\r\n \r\n
\r\n {meta.touched && meta.error ? meta.error : null}\r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction ModalAddVehicule(props) {\r\n const initialValues = {\r\n vehicle_type: props.selectedVehicle?.vehicle_type || null,\r\n imat: props.selectedVehicle?.imat || \"\",\r\n vehicule_key: props.selectedVehicle?.vehicule_key || generateRandomString(),\r\n pin: \"123456\",\r\n length: props.selectedVehicle?.length || 0,\r\n width: props.selectedVehicle?.width || 0,\r\n height: props.selectedVehicle?.height || 0,\r\n starting_platform_id: null,\r\n containers: props.selectedVehicle?.containers || [],\r\n is_disabled: props.selectedVehicle?.is_disabled || 0,\r\n };\r\n\r\n const [vehicle, setVehicle] = useState(initialValues);\r\n const [step, setStep] = useState(0);\r\n const [swiper, setSwiper] = useState(null);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [error, setError] = useState(false);\r\n\r\n const [toggleAddContainer, setToggleAddContainer] = useState(false);\r\n const [addContainerMaxWeight, setAddContainerMaxWeight] = useState(0);\r\n const [addContainerMaxVolume, setAddContainerMaxVolume] = useState(0);\r\n\r\n const goToNext = () => {\r\n if (swiper) {\r\n if (step + 1 < 4) {\r\n swiper.slideTo(step + 1);\r\n setStep(step + 1);\r\n }\r\n }\r\n };\r\n const goToPrev = () => {\r\n if (swiper) {\r\n if (step - 1 >= 0) {\r\n swiper.slideTo(step - 1);\r\n setStep(step - 1);\r\n }\r\n }\r\n };\r\n\r\n const canGoToNextStep = (values, errors) => {\r\n switch (step) {\r\n case 0:\r\n return (\r\n !values.vehicle_type ||\r\n !values.imat ||\r\n !values.vehicule_key ||\r\n !values.length ||\r\n !values.width ||\r\n !values.height\r\n );\r\n case 1:\r\n return (\r\n !values.containers ||\r\n values.containers.length === 0 ||\r\n errors.containers\r\n );\r\n case 3:\r\n return !values.starting_platform_id;\r\n default:\r\n return false;\r\n }\r\n };\r\n\r\n const addNewContainer = (containers, setFieldValue) => {\r\n const newContainers = [...containers];\r\n newContainers.push({\r\n uuid: uuidv1(),\r\n max_weight: addContainerMaxWeight,\r\n max_volume: addContainerMaxVolume,\r\n });\r\n setFieldValue(\"containers\", newContainers);\r\n setToggleAddContainer(false);\r\n resetAddContainerInput();\r\n };\r\n\r\n const deleteContainer = (key, containers, setFieldValue) => {\r\n let newContainers = [...containers];\r\n newContainers = newContainers.filter((x) => x.uuid !== key);\r\n\r\n setFieldValue(\"containers\", newContainers);\r\n setToggleAddContainer(false);\r\n resetAddContainerInput();\r\n };\r\n\r\n const resetAddContainerInput = () => {\r\n setAddContainerMaxWeight(0);\r\n setAddContainerMaxVolume(0);\r\n };\r\n\r\n const setStartingPlateformID = (_id, setFieldValue) => {\r\n if (_id) {\r\n setFieldValue(\"starting_platform_id\", _id);\r\n goToNext();\r\n }\r\n };\r\n\r\n /******\r\n *\r\n * functions\r\n *\r\n ******/\r\n\r\n const handleSubmitMethod = async (values) => {\r\n setIsLoading(true);\r\n\r\n if (props.selectedVehicle) {\r\n return await putVehicle(values);\r\n } else {\r\n return await postVehicle(values);\r\n }\r\n };\r\n\r\n const postVehicle = async (values) => {\r\n const url = new URL(props.BASE_URL + \"/vehicules\");\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n setIsLoading(true);\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = {\r\n method: \"POST\",\r\n headers: myHeaders,\r\n cache: \"no-cache\",\r\n body: JSON.stringify({\r\n ...values,\r\n }),\r\n };\r\n\r\n console.log(\"POST request @ \", props.BASE_URL + \"/vehicules\");\r\n\r\n return fetch(url, myInit)\r\n .then(async (response) => {\r\n return await response?.json();\r\n })\r\n .catch((error) => {\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n return false;\r\n });\r\n };\r\n\r\n const putVehicle = async (values) => {\r\n const url = new URL(\r\n props.BASE_URL + \"/vehicules/\" + props.selectedVehicle.vehicule_id\r\n );\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n setIsLoading(true);\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = {\r\n method: \"PUT\",\r\n headers: myHeaders,\r\n cache: \"no-cache\",\r\n body: JSON.stringify({\r\n ...values,\r\n }),\r\n };\r\n\r\n console.log(\r\n \"PUT request @ \",\r\n props.BASE_URL + \"/vehicules/\" + props.selectedVehicle.vehicule_id\r\n );\r\n\r\n return fetch(url, myInit)\r\n .then(async (response) => {\r\n return await response?.json();\r\n })\r\n .catch((error) => {\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n return false;\r\n });\r\n };\r\n\r\n return (\r\n {\r\n setToggleAddContainer(false);\r\n resetAddContainerInput();\r\n setStep(0);\r\n }}\r\n >\r\n
\r\n {\r\n handleSubmitMethod(values).then(async (response) => {\r\n setIsLoading(false);\r\n setSubmitting(false);\r\n\r\n if (response?.status === \"Success\") {\r\n setError(null);\r\n props.onHide(true);\r\n } else {\r\n setError(response?.error || \"une erreur est survenue\");\r\n }\r\n });\r\n }}\r\n >\r\n {({ errors, values, submitForm, setFieldValue }) => (\r\n
\r\n \r\n
\r\n
\r\n
{add_truck_title_and_desc[step].title}
\r\n

{add_truck_title_and_desc[step].desc}

\r\n
\r\n
\r\n
\r\n \r\n setSwiper(swiper)}\r\n allowTouchMove={false}\r\n >\r\n {/* SLIDE 1 */}\r\n {/* SLIDE 1 */}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Type de véhicule\r\n \r\n
\r\n
\r\n {props.can_create_tanker_trucks && (\r\n <>\r\n \r\n setFieldValue(\r\n \"vehicle_type\",\r\n \"CAMION_CITERNE\"\r\n )\r\n }\r\n >\r\n Citerne sans débitmètre\r\n \r\n \r\n setFieldValue(\r\n \"vehicle_type\",\r\n \"CAMION_CITERNE_DEBIMETRE\"\r\n )\r\n }\r\n >\r\n Citerne avec débitmètre\r\n \r\n \r\n )}\r\n {props.can_create_trucks && (\r\n <>\r\n \r\n setFieldValue(\"vehicle_type\", \"CAMION\")\r\n }\r\n >\r\n Camion remorque\r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {props?.selectedVehicle?.is_disabled === 1 ? (\r\n <>\r\n
\r\n \r\n
\r\n \r\n Véhicule désactivé pour l’optimisation\r\n \r\n \r\n ) : props?.selectedVehicle?.starting_platform_id === null ? (\r\n <>\r\n
\r\n \r\n
\r\n \r\n Configuration nécessaire pour l’optimisation\r\n \r\n \r\n ) : props?.selectedVehicle === null ? (\r\n <>\r\n \r\n \r\n ) : (\r\n <>\r\n
\r\n \r\n
\r\n \r\n Véhicule prêt pour l’optimisation\r\n \r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n Immatriculation du véhicule\r\n \r\n \r\n \r\n \r\n \r\n Clé véhicule\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Largeur (mètre)\r\n \r\n \r\n \r\n \r\n Hauteur (mètre)\r\n \r\n \r\n \r\n \r\n Longueur (mètre)\r\n \r\n \r\n \r\n \r\n {/* \r\n
\r\n \r\n\r\n \r\n \r\n Propriétés du vehicule\r\n \r\n
\r\n \r\n 750 kg max.\r\n \r\n \r\n 7 compartiments\r\n \r\n \r\n Piable\r\n \r\n
\r\n */}\r\n \r\n
\r\n \r\n\r\n {/* SLIDE 2 */}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n clé compartiment\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n kg max.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Volume m³\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {values.containers?.map(\r\n (container, container_index) => {\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {container_index + 1}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n COMPARTIMENT N° {container_index + 1}\r\n \r\n
\r\n
\r\n {\r\n setFieldValue(\"containers\", [\r\n ...values.containers.slice(\r\n 0,\r\n container_index\r\n ),\r\n {\r\n ...container,\r\n max_weight: event.target.value,\r\n },\r\n ...values.containers.slice(\r\n container_index + 1\r\n ),\r\n ]);\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n setFieldValue(\"containers\", [\r\n ...values.containers.slice(\r\n 0,\r\n container_index\r\n ),\r\n {\r\n ...container,\r\n max_volume: event.target.value,\r\n },\r\n ...values.containers.slice(\r\n container_index + 1\r\n ),\r\n ]);\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n deleteContainer(\r\n container.uuid,\r\n values.containers,\r\n setFieldValue\r\n );\r\n }}\r\n disabled={values.containers?.length < 2}\r\n >\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n )}\r\n \r\n
\r\n
\r\n
\r\n {\r\n setToggleAddContainer(!toggleAddContainer);\r\n if (toggleAddContainer) {\r\n setAddContainerMaxWeight(0);\r\n setAddContainerMaxVolume(0);\r\n }\r\n }}\r\n >\r\n \r\n \r\n Ajouter un compartiment au véhicule\r\n \r\n \r\n\r\n {toggleAddContainer ? (\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {vehicle.containers?.length + 1}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n COMPARTIMENT N°{\" \"}\r\n {vehicle.containers?.length + 1}\r\n \r\n
\r\n
\r\n \r\n setAddContainerMaxWeight(e.target.value)\r\n }\r\n />\r\n
\r\n
\r\n \r\n setAddContainerMaxVolume(e.target.value)\r\n }\r\n />\r\n
\r\n
\r\n {\r\n addNewContainer(\r\n values.containers,\r\n setFieldValue\r\n );\r\n }}\r\n disabled={\r\n !addContainerMaxWeight ||\r\n !addContainerMaxVolume\r\n }\r\n >\r\n {/* */}\r\n Ajouter\r\n \r\n
\r\n
\r\n
\r\n ) : null}\r\n
\r\n
\r\n
\r\n
\r\n\r\n {/* SLIDE 3 */}\r\n {/* SLIDE 3 */}\r\n \r\n
\r\n
\r\n \r\n {props.platforms?.length > 0 ? (\r\n <>\r\n {props.platforms.map((platform) => (\r\n \r\n setStartingPlateformID(\r\n platform.id,\r\n setFieldValue\r\n )\r\n }\r\n >\r\n \r\n
\r\n {/* */}\r\n \r\n
\r\n {platform.id}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {platform.full_address}\r\n \r\n
\r\n
\r\n
\r\n ))}\r\n \r\n ) : (\r\n
\r\n \r\n Aucune plateforme définie\r\n \r\n \r\n Ajouter une plateforme avec le bouton ci-dessous.\r\n \r\n
\r\n )}\r\n \r\n \r\n
\r\n \r\n \r\n\r\n {/* SLIDE 4 */}\r\n {/* SLIDE 4 */}\r\n \r\n
\r\n
\r\n

\r\n Tout est bon pour vous ?\r\n

\r\n

\r\n Vérifiez les paramètres de votre camion et confirmez via\r\n le bouton ci-dessous, si tout vous semble bon\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n element.id === values.starting_platform_id\r\n )?.color\r\n }\r\n platform={values.starting_platform_id}\r\n />\r\n \r\n Véhicule immatriculé {values.imat}\r\n \r\n \r\n CLÉ VÉHICULE {values.vehicule_key}\r\n \r\n
\r\n {/*
\r\n \r\n 750 kg max.\r\n \r\n \r\n Pliable\r\n \r\n \r\n Solide\r\n \r\n \r\n 670m²\r\n \r\n
*/}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {error}\r\n
\r\n \r\n\r\n \r\n {step > 0 ? (\r\n {\r\n goToPrev();\r\n }}\r\n >\r\n Retour\r\n \r\n ) : null}\r\n\r\n {step !== 2 ? (\r\n {\r\n step !== 3 ? goToNext() : submitForm();\r\n }}\r\n >\r\n {step !== 3 ? \"Passer à l'étape suivante\" : \"Enregistrer\"}\r\n \r\n ) : null}\r\n \r\n \r\n )\r\n }\r\n \r\n \r\n );\r\n}\r\n\r\nexport default ModalAddVehicule;\r\n","import React, { useEffect, useState, useCallback } from \"react\";\r\nimport { Modal, Button, Col, Row } from \"react-bootstrap\";\r\nimport \"./modal-config.scss\";\r\n\r\nconst ModalConfig = (props) => {\r\n const [maxKmPerTour, setMaxKmPerTour] = useState(0);\r\n const [averageStopTime, setAverageStopTime] = useState(0);\r\n const [departTime, setDepartTime] = useState(\"08:00\");\r\n const [maxDuration, setMaxDuration] = useState(\"08:00\");\r\n const [configToCreate, setConfigToCreate] = useState(null);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [error, setError] = useState(false);\r\n\r\n const getConfig = useCallback(async () => {\r\n setIsLoading(true);\r\n\r\n const url = new URL(props.BASE_URL + \"/Config/client\");\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = { method: \"GET\", headers: myHeaders, cache: \"no-cache\" };\r\n\r\n console.log(\"GET request @ \", props.BASE_URL + \"/Config/client\");\r\n\r\n fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n if (result.status === \"Success\") {\r\n const config = result?.clientConfig ?? [];\r\n if (config) {\r\n let objectAverageStopTime =\r\n config?.filter(\r\n (object) =>\r\n object[\"config_name\"] === \"AVERAGE_TIME_PER_STOP\"\r\n )?.[0]?.config_value ?? 0;\r\n setAverageStopTime(objectAverageStopTime);\r\n\r\n let objectMaxKmPerTourValue =\r\n config?.filter(\r\n (object) => object[\"config_name\"] === \"MAX_KM_FOR_A_TOUR\"\r\n )?.[0]?.config_value ?? 0;\r\n setMaxKmPerTour(objectMaxKmPerTourValue);\r\n\r\n let objectDepartTime =\r\n config?.filter(\r\n (object) => object[\"config_name\"] === \"DEFAULT_DEPART_TIME\"\r\n )?.[0]?.config_value ?? \"08:00\";\r\n setDepartTime(objectDepartTime);\r\n\r\n let objectMaxDuration =\r\n config?.filter(\r\n (object) => object[\"config_name\"] === \"TOUR_MAX_DURATION\"\r\n )?.[0]?.config_value ?? \"08:00\";\r\n setMaxDuration(objectMaxDuration);\r\n }\r\n setIsLoading(false);\r\n return;\r\n } else {\r\n throw new Error(\"Success == false\"); // rejects the promise\r\n }\r\n });\r\n } else {\r\n throw new Error(\"Error from network\"); // rejects the promise\r\n }\r\n })\r\n .catch((error) => {\r\n setIsLoading(false);\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n });\r\n }, [props.BASE_URL]);\r\n\r\n const postConfig = () => {\r\n const url = new URL(props.BASE_URL + \"/Config/client\");\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = {\r\n method: \"POST\",\r\n headers: myHeaders,\r\n cache: \"no-cache\",\r\n body: JSON.stringify({\r\n configs: [\r\n {\r\n config_name: \"AVERAGE_TIME_PER_STOP\",\r\n config_value: averageStopTime,\r\n },\r\n {\r\n config_name: \"MAX_KM_FOR_A_TOUR\",\r\n config_value: maxKmPerTour,\r\n },\r\n {\r\n config_name: \"DEFAULT_DEPART_TIME\",\r\n config_value: departTime,\r\n },\r\n {\r\n config_name: \"TOUR_MAX_DURATION\",\r\n config_value: maxDuration,\r\n },\r\n ],\r\n }),\r\n };\r\n\r\n console.log(\"POST request @ \", props.BASE_URL + \"/Config/client\");\r\n\r\n fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n setIsLoading(false);\r\n props.onHide();\r\n setError(null);\r\n } else {\r\n setIsLoading(false);\r\n setError(\"Une erreur est survenue\");\r\n response.json().then(function (result) {\r\n console.log(\"result\", result);\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n setIsLoading(false);\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n });\r\n };\r\n return (\r\n getConfig()}>\r\n
\r\n \r\n
\r\n
\r\n
Configurations globales
\r\n

Gerez les configurations globales de votre flotte

\r\n
\r\n
\r\n
\r\n \r\n \r\n Heure du démarrage de la tournée\r\n \r\n
\r\n setDepartTime(e.target.value)}\r\n defaultValue=\"08:00\"\r\n required />\r\n
\r\n \r\n Durée maximale d'une tournée\r\n \r\n
\r\n setMaxDuration(e.target.value)}\r\n defaultValue=\"08:00\"\r\n required />\r\n
\r\n \r\n Temps moyen par stop (en minutes)\r\n \r\n
\r\n setAverageStopTime(e.target.value)}\r\n />\r\n
\r\n \r\n Nombre de km max pour une tournée\r\n \r\n
\r\n setMaxKmPerTour(e.target.value)}\r\n />\r\n
\r\n \r\n Mode de finalisation des tournées\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n\r\n \r\n

\r\n L'algorithme génère la tournée pour tous les BLs, tout les jours\r\n même si les camions ne sont pas remplis.\r\n

\r\n \r\n \r\n \r\n
\r\n

{error}

\r\n
\r\n \r\n \r\n {isLoading ? \"Chargement...\" : \"Enregistrer\"}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ModalConfig;\r\n","import React, { useState, useRef, useEffect } from \"react\";\r\nimport { Modal, Button, Card } from \"react-bootstrap\";\r\nimport \"./modal-add-platform.scss\";\r\n\r\nimport MapboxGeocoder from \"@mapbox/mapbox-gl-geocoder\";\r\nimport \"@mapbox/mapbox-gl-geocoder/dist/mapbox-gl-geocoder.css\";\r\n\r\nconst ModalAddPlateform = (props) => {\r\n const [currentPlatform, setCurrentPlatform] = useState(null);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [error, setError] = useState(false);\r\n\r\n const mapContainerRef = useRef(null);\r\n const map = useRef(null);\r\n\r\n /******\r\n *\r\n * functions\r\n *\r\n ******/\r\n\r\n const postPlatforms = () => {\r\n const url = new URL(props.BASE_URL + \"/starting-platform\");\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n setIsLoading(true);\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = {\r\n method: \"POST\",\r\n headers: myHeaders,\r\n cache: \"no-cache\",\r\n body: JSON.stringify({\r\n ...currentPlatform,\r\n }),\r\n };\r\n\r\n console.log(\"POST request @ \", props.BASE_URL + \"/starting-platform\");\r\n\r\n fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n setIsLoading(false);\r\n setError(null);\r\n props.onHide(true);\r\n } else {\r\n setIsLoading(false);\r\n setError(\"Une erreur est survenue\");\r\n response.json().then(function (result) {\r\n console.log(\"result\", result);\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n setIsLoading(false);\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n });\r\n };\r\n\r\n /******\r\n *\r\n * Effects\r\n *\r\n ******/\r\n\r\n useEffect(() => {\r\n if (map.current) return; // initialize map only once\r\n\r\n if (mapContainerRef.current) {\r\n map.current = new MapboxGeocoder({\r\n accessToken: process.env.REACT_APP_MAPBOX_ACCESS_TOKEN,\r\n types: \"address\",\r\n countries: \"FR,BE,DE,NL\"\r\n });\r\n map.current.addTo(mapContainerRef.current);\r\n\r\n map.current.on(\"result\", (result) => {\r\n if (result.result) {\r\n setCurrentPlatform({\r\n full_address: result.result.place_name,\r\n latitude: result.result.geometry.coordinates[1],\r\n longitude: result.result.geometry.coordinates[0],\r\n });\r\n }\r\n });\r\n }\r\n });\r\n\r\n return (\r\n {\r\n setCurrentPlatform(null);\r\n setError(null);\r\n map.current = null;\r\n }}\r\n >\r\n
\r\n \r\n
\r\n
\r\n
Ajouter une nouvelle plateforme
\r\n

\r\n Saisissez l'adresse de la plateforme pour l'ajouter à votre liste\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Plateforme N° {\"X\"}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

{error}

\r\n
\r\n \r\n {\r\n postPlatforms();\r\n }}\r\n disabled={currentPlatform === null || isLoading}\r\n >\r\n {isLoading ? \"Chargement...\" : \"Ajouter la plateforme\"}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ModalAddPlateform;\r\n","import React, { useState, useRef, useEffect } from \"react\";\r\nimport \"./platform-management.scss\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faPlusCircle } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { Button, Card } from \"react-bootstrap\";\r\nimport Skeleton from \"react-loading-skeleton\";\r\nimport SimpleBarReact from \"simplebar-react\";\r\nimport BadgeColor from \"../platform-color-badge\";\r\nimport \"simplebar/dist/simplebar.min.css\";\r\n\r\nconst PlatformList = (props) => {\r\n const [showAddPlatform, setShowAddPlatform] = useState(true);\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {props.platforms?.length > 0 ? (\r\n <>\r\n {props.platforms.map((platform) => (\r\n
\r\n \r\n
\r\n {/* */}\r\n \r\n
{platform.id}
\r\n
\r\n
\r\n
\r\n \r\n \r\n {platform.full_address}\r\n \r\n
\r\n
\r\n
\r\n ))}\r\n \r\n ) : (\r\n
\r\n Aucune plateforme définie\r\n \r\n Ajouter une plateforme avec le bouton ci-dessous.\r\n \r\n
\r\n )}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n {\r\n props.setModalShowAddPlatform(true);\r\n }}\r\n disabled={props.isFleetEditing}\r\n >\r\n \r\n Ajouter une plateforme\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default PlatformList;\r\n","import React from \"react\";\r\nimport { Modal, Button, Col, Row } from \"react-bootstrap\";\r\nimport \"./modal-onboarding.scss\";\r\n\r\nconst ModalOnBoarding = (props) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n Démo\r\n
\r\n

Tutoriel fleet optimisation

\r\n

\r\n Notre tutoriel Youtube vous accompagnera dans la découverte de l'ensemble des outils proposés par l'optimisation Fleet. Suivez le guide !\r\n

\r\n
\r\n \r\n \r\n Retour\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ModalOnBoarding;\r\n","import React, {\r\n useCallback,\r\n useEffect,\r\n useState,\r\n useRef,\r\n Suspense,\r\n} from \"react\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport {\r\n faAngleLeft,\r\n faCircleInfo,\r\n faCirclePlus,\r\n faDiagramProject,\r\n faGear,\r\n faNetworkWired,\r\n faTruck,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport noDataIllu from \"../../../assets/images/illustration/undraw_map_re_60yf@2x.png\";\r\nimport { Link } from \"react-router-dom\";\r\nimport TourItemFleetManagement from \"../../pages/FleetManagement/tour-item-fleet-management/tour-item-fleet-management\";\r\nimport TourItemDashboardLoader from \"../../pages/Dashboard/tour-item-dashboard-loader/tour-item-dashboard-loader\";\r\nimport DashboardClaimModal from \"../../pages/Dashboard/dashboard-claim-modal/dashboard-claim-modal\";\r\nimport { Button, Spinner } from \"react-bootstrap\";\r\nimport SimpleBarReact from \"simplebar-react\";\r\nimport \"simplebar/dist/simplebar.min.css\";\r\nimport DatePicker, { registerLocale } from \"react-datepicker\";\r\nimport fr from \"date-fns/locale/fr\";\r\nimport ModalAddVehicule from \"./modal-management/modal-add-truck\";\r\nimport ModalConfig from \"./modal-management/modal-config\";\r\nimport ModalAddPlatform from \"./modal-management/modal-add-platform\";\r\nimport { tour_status } from \"../../../constants/tour_status\";\r\n\r\nimport {\r\n CircularProgressbarWithChildren,\r\n buildStyles,\r\n} from \"react-circular-progressbar\";\r\nimport \"react-circular-progressbar/dist/styles.css\";\r\n\r\nimport \"../../App/App.scss\";\r\nimport \"./FleetManagement.scss\";\r\nimport { io } from \"socket.io-client\";\r\nimport SkeletonLoader from \"tiny-skeleton-loader-react\";\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { setNavWidth } from \"../../../reducer/Action\";\r\nimport PlatformList from \"../../pages/FleetManagement/platform-management\";\r\nimport ModalOnBoarding from \"./modal-management/modal-onboarding\";\r\n\r\nregisterLocale(\"fr\", fr);\r\n\r\nconst MapFleetDashboard = React.lazy(() =>\r\n import(\r\n \"../../pages/FleetManagement/map-fleet-management/map-fleet-management\"\r\n )\r\n);\r\n\r\nconst FleetManagement = (props) => {\r\n /******\r\n *\r\n * States\r\n *\r\n ******/\r\n\r\n const [vehicles, setVehicles] = useState([]);\r\n const [vehiclesConfig, setVehiclesConfig] = useState([]);\r\n const [platforms, setPlatforms] = useState([]);\r\n\r\n const [show, setShow] = useState(false);\r\n const [date, setDate] = useState(new Date());\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const [isVehiclesLoading, setIsVehiclesLoading] = useState(false);\r\n const [isPlatformsLoading, setIsPlatformsLoading] = useState([]);\r\n\r\n const [isDownloadingResume, setIsDownloadingResume] = useState(false);\r\n\r\n const [selectedTourID, setSelectedTourID] = useState(null);\r\n const [selectedTour, setSelectedTour] = useState(null);\r\n const [tourStatus, setTourStatus] = useState(\"all\");\r\n const [fluxStatus, setFluxStatus] = useState(\"all\");\r\n const [modalShow, setModalShow] = useState(false);\r\n const [modalShowTwo, setModalShowTwo] = useState(false);\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const [modalShowAddPlatform, setModalShowAddPlatform] = useState(false);\r\n const [isMapReady, setIsMapReady] = useState(false);\r\n const [isMapUpdating, setIsMapUpdating] = useState(false);\r\n const [isFleetEditing, setIsFleetEditing] = useState(false);\r\n\r\n const [selectedVehicle, setSelectedVehicle] = useState(null);\r\n\r\n const BASE_URL = useSelector((state) => state.BASE_URL);\r\n const ref = useRef();\r\n\r\n /******\r\n *\r\n * functions\r\n *\r\n ******/\r\n\r\n const isFiltering = useCallback(() => {\r\n return tourStatus !== \"all\";\r\n }, [tourStatus]);\r\n\r\n // filter all the tours by the status\r\n const filteringFunction = useCallback(() => {\r\n if (!vehicles) {\r\n return [];\r\n }\r\n\r\n if (!isFiltering()) {\r\n return vehicles;\r\n }\r\n\r\n return vehicles.filter((x) => {\r\n return x.status?.toUpperCase() === tourStatus?.toUpperCase();\r\n });\r\n }, [vehicles, tourStatus, isFiltering]);\r\n\r\n const getPlatforms = useCallback(() => {\r\n const url = new URL(BASE_URL + \"/starting-platform\");\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n setIsPlatformsLoading(true);\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = { method: \"GET\", headers: myHeaders, cache: \"no-cache\" };\r\n\r\n console.log(\"GET request @ \", BASE_URL + \"/starting-platform\");\r\n\r\n fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n if (result.status === \"Success\") {\r\n setIsPlatformsLoading(false);\r\n setPlatforms(result.startingPlatforms);\r\n }\r\n });\r\n } else {\r\n setIsPlatformsLoading(false);\r\n console.log(\"Mauvaise réponse du réseau\");\r\n response.json().then(function (result) {\r\n console.log(\"result\", result);\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n setIsLoading(false);\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n });\r\n }, [BASE_URL]);\r\n\r\n const getVehicles = useCallback(() => {\r\n const url = new URL(BASE_URL + \"/vehicules\");\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n setIsVehiclesLoading(true);\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = { method: \"GET\", headers: myHeaders, cache: \"no-cache\" };\r\n\r\n console.log(\"GET request @ \", BASE_URL + \"/vehicules\");\r\n\r\n fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n if (result.status === \"Success\") {\r\n setIsVehiclesLoading(false);\r\n setVehicles(result.vehicules);\r\n setVehiclesConfig({\r\n can_create_tanker_trucks: result.canCreateTankerTrucks,\r\n can_create_trucks: result.canCreateTrucks,\r\n });\r\n }\r\n });\r\n } else {\r\n setIsVehiclesLoading(false);\r\n console.log(\"Mauvaise réponse du réseau\");\r\n response.json().then(function (result) {\r\n console.log(\"result\", result);\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n setIsLoading(false);\r\n setIsVehiclesLoading(false);\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n });\r\n }, [BASE_URL]);\r\n\r\n const toggleActivation = async (_id) => {\r\n if (!_id) return;\r\n const url = new URL(\r\n BASE_URL + \"/vehicules/toggle-for-optimization/\" + _id\r\n );\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n setIsLoading(true);\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = {\r\n method: \"PUT\",\r\n headers: myHeaders,\r\n cache: \"no-cache\",\r\n };\r\n\r\n console.log(\r\n \"PUT request @ \",\r\n BASE_URL + \"/vehicules/toggle-for-optimization/\" + _id\r\n );\r\n\r\n return fetch(url, myInit)\r\n .then((response) => response.json())\r\n .catch((error) => {\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n return false;\r\n });\r\n };\r\n\r\n /******\r\n *\r\n * handlers\r\n *\r\n ******/\r\n\r\n function switchStatut(_id) {\r\n const newVehicles = vehicles.map((vehicle) => {\r\n if (vehicle.vehicule_id === _id) {\r\n vehicle.is_disabled = vehicle.is_disabled === 0 ? 1 : 0;\r\n }\r\n return vehicle;\r\n });\r\n setVehicles(newVehicles);\r\n }\r\n\r\n const handleToggleVehicleForOptimization = (_id) => {\r\n toggleActivation(_id).then((result) => {\r\n if (result) {\r\n if (result.isVehiculeUpdated === true) {\r\n switchStatut(_id)\r\n }\r\n } else {\r\n fetch(result)\r\n .then((response) => response.json())\r\n .catch((error) => {\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n });\r\n switchStatut(_id)\r\n }\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const handleEditVehicle = (vehicle) => {\r\n if (!selectedVehicle) {\r\n setSelectedVehicle(vehicle);\r\n setModalShow(true);\r\n } else {\r\n setSelectedVehicle(null);\r\n setModalShow(false);\r\n }\r\n };\r\n\r\n /******\r\n *\r\n * Effects\r\n *\r\n ******/\r\n\r\n /*****\r\n * will set the selected tour in order to use in the map detail when the user click on a tour\r\n */\r\n\r\n // simple-bar recalculate width and height\r\n useEffect(() => {\r\n ref.current.recalculate();\r\n });\r\n\r\n // Did mount effect\r\n useEffect(() => {\r\n getPlatforms();\r\n getVehicles();\r\n setSelectedTourID(null);\r\n setTourStatus(\"all\");\r\n }, [BASE_URL, getPlatforms, getVehicles]);\r\n\r\n /******\r\n *\r\n * Return\r\n *\r\n ******/\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n

Définition de votre flotte

\r\n

Créez, modifiez ou désactivez vos camions pour l'optimisation.

\r\n
\r\n
\r\n setModalHelp(true)}\r\n >\r\n \r\n \r\n setModalShowTwo(true)}\r\n disabled={\r\n isLoading || isDownloadingResume || vehicles?.length === 0 || isFleetEditing\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {/* */}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Liste de vos véhicules\r\n \r\n \r\n {vehicles?.length ?? 0}\r\n \r\n
\r\n
\r\n setModalShow(true)}\r\n className=\"btn-add-truck\"\r\n disabled={isLoading || isFleetEditing}\r\n >\r\n \r\n Ajouter un véhicule\r\n \r\n setIsFleetEditing(!isFleetEditing)}\r\n className=\"btn-add-truck ms-2\"\r\n disabled={isLoading}\r\n >\r\n \r\n Gestion de flotte\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {vehicles?.length > 0 ? (\r\n <>\r\n {filteringFunction()?.length > 0 ? (\r\n filteringFunction()?.map((vehicle, vehicle_index) => {\r\n return (\r\n \r\n );\r\n })\r\n ) : (\r\n
\r\n \r\n \r\n Aucun véhicule en tournée avec\r\n
le filtre sélectionné\r\n
\r\n \r\n Aucun véhicule n'est en tournée pour la date du{\" \"}\r\n {date.toLocaleDateString(\"fr-FR\", {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n })}{\" \"}\r\n avec le statut{\" \"}\r\n \r\n {\r\n tour_status?.properties[tourStatus]\r\n ?.display_name\r\n }\r\n \r\n .\r\n \r\n
\r\n )}\r\n \r\n ) : isVehiclesLoading ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n
\r\n \r\n {/*
*/}\r\n \r\n Aucun véhicule défini.\r\n \r\n \r\n Vous devez définir un véhicule pour le voir ici.\r\n \r\n
\r\n )}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Plateformes de départ\r\n \r\n

\r\n Définissez simplement vos différentes plateformes de\r\n départ\r\n

\r\n
\r\n \r\n {platforms?.length ?? 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 \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n setModalShow(false);\r\n setSelectedVehicle(null);\r\n if (vehicle_added) {\r\n getVehicles();\r\n }\r\n }}\r\n platforms={platforms}\r\n selectedVehicle={selectedVehicle}\r\n BASE_URL={BASE_URL}\r\n can_create_trucks={vehiclesConfig?.can_create_trucks}\r\n can_create_tanker_trucks={vehiclesConfig?.can_create_tanker_trucks}\r\n />\r\n setModalShowTwo(false)}\r\n BASE_URL={BASE_URL}\r\n />\r\n setModalHelp(false)} />\r\n {\r\n setModalShowAddPlatform(false);\r\n if (plateform_added) {\r\n getPlatforms();\r\n }\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default FleetManagement;\r\n","export default __webpack_public_path__ + \"static/media/earth.ee84810d.png\";","export default __webpack_public_path__ + \"static/media/box.263b57c6.png\";","export default __webpack_public_path__ + \"static/media/in_v2.7683f5b0.png\";","export default __webpack_public_path__ + \"static/media/in.700518e5.png\";","export default __webpack_public_path__ + \"static/media/out.d91c895a.png\";","export default __webpack_public_path__ + \"static/media/in_out_v2.d468c0b4.png\";","export default __webpack_public_path__ + \"static/media/in_arrow_v2.f3ebe7a6.png\";","export default __webpack_public_path__ + \"static/media/out_arrow.acbdd8c3.png\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAXCAYAAAAV1F8QAAAABHNCSVQICAgIfAhkiAAAAfJJREFUSEu9lUFW2zAQhv+REntZ3wD3BuEG4QSFE5BscFgQlxMUTuCQLtx0k3CDcALgBE1PUN+gZIlSa/qkEiAUS3opr1pao/k0mn9+EzwrmlzMCHTYGMZc3cd6F/3TO1cqcm3Gk/FHAIXvMgxeqEjvuWAW1P5adIhbH54nZHAiAAMKWgYGiPlGMOuFGuRX5hu1y3FPCEyDsm0RZKvN8l2KJ+MKwM4WOYKPMOjAgDj4xJaBDD4PBjHjO4jnrKkiwSmAFKB9At75+EEgBpZa0/6v45ObvxJOiyRSYuSUPwAvyEBUVKePsi2LtCXlDqFero5OF2uwb9a8oFrTnq1kWiRtJT9tyJ250kIfrIEuUTlBpidqMOzYOftyMRJE+cunY/CdivR7U7FrTNwg8LnK8jOURRoL+aOp4SaJjZsWSazkz9finCCt0V8dD2et8nNXCr52KOv2Pht2zX7TqARVZOxJsPzmqOhSZXnvX0DPEzS6h5l6lZ3MXRfyVfTUaGu68ublcDL48TIuiXvlzYyZGgz79tnKIo2E6BGoy+DKOLWpZO3+nuf1W9AG7JVG/fnFiGsCJS5lBnmdsXoGRqtIX61dwgK0zIlgheBa3qfzJQjd/28gM5PkM8TQWzf3B0ul6w4Z63iwejPdb/2nva01nRlj/g3sBDbNfomKgQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAXCAYAAAAV1F8QAAAABHNCSVQICAgIfAhkiAAAAc9JREFUSEu91M1V20AQB/D/rND6aiqADiIqwHRAB5EvCB8ixxXgVCBsDkG5YCrAVGBTQaADp4PkFsnWDm8I4sl6tqWV34uO2o/fzuzskL4dPxPhEyq+JAhJx6MhmI7Sy7BbNb88Tq14zHUW5RCBrpgxscUaQXIwW6wxZIvtBdlgVpD7fewrBb98p4nJfPQGi7X/d1HbXeJ4eTF4lv+1IUPZSb6oqnjcH5FHrGYEahuD7rIXTmpDb5sz5psQo7JB8RDu7ehaEfXzuYLZQVtCyQydrXpf5hIJMseTCHQ8mhDo87975Me9IWa8pK2sI/dRTpdgYPJkfC9oE1JMl0SGu6iN7uB3Y2gX8l72L+ll6OVwI6gSAf4wZZ1igVhDTRCrd/SRjtLFFwuRN0SyM3VSjqzMULFzDeA0n8zgb6kxE63UT3mMdZGtEeVdQMc35wR+KELGqLmjeGaDbIN+JUF4LI9PLrMVj78yaAHmIYinZWhXuoqHWSsGBt8Daprq1VynapYG/ROZ/Ia6WBz8PfBWWC20Uh+NlclM6/TANSjR2aFsrBMnIoIvrcVRLG8hMmB/GfTvqxrqtnHr8t60Ud7rdh3i/0Hllt4gNU9JEHaq1r0CyYli0ojovI0AAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAXCAYAAAAV1F8QAAAABHNCSVQICAgIfAhkiAAAAaxJREFUSEu9lNFtwjAQhu/AeacTlEjYr4UJCht0g8IEbSconaCMABMUJoBOUHh1IkE3aJ8d8VeHoEoDSXCQ6pcoPt99vvPdz9baJTPfUMnSWnMURUMA18aYQdn5rF2ccY7TAUREzwDGvrBKILmYL6wyyBd2EcgH5gWy1vaZuZ99U6VUPwzDTXp/vV43nHNNY8xS9s8GAegcnMqax1rbZuY5ETUADIwx47NB++CLUxAAT+lLxHE8AvBwOCswX1BeMj2t9UIyIaK2ZGCtHTPz/d5hdjEIwCoIgq68R7ZcAhOw2C8CnYKkyyWZSVOEYfhVGVQE2bf9yhgjpdytSqAyCBF9A+imG8QbVAXinVFVSBFoBmDIzCMiuk319ItSapwkyYcMY6bXj8qVtp8s3UEF4ji+A/CWBhGRDK1MfXoVQvIy+tRaN2X45DGjKHpk5s12u5UMpydApZAjEIBJrVab1uv1hXNubozpyCGBBkGwSZKkrZSS76+wApieo4F/SqeUupLAzrnXvUr3ZLKJaPffarUmZYKaZ/du75xAO60rusT/gbKSXqE071rrbpnfDzr9YAMeDf/6AAAAAElFTkSuQmCC\"","import React, { Component } from \"react\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faLeaf } from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nimport \"./item.css\";\r\n\r\nexport class Item extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n activeKey: props.activeKey,\r\n number: props.number,\r\n products: props.products,\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {\" \"}\r\n \r\n {\" \"}\r\n {this.props.item.item_key\r\n ? this.props.item.item_key\r\n : \"id indisponible\"}{\" \"}\r\n -{\" \"}\r\n {this.props.item.name\r\n ? this.props.item.name\r\n : \"Titre indisponible\"}{\" \"}\r\n \r\n
\r\n
\r\n \r\n {\" \"}\r\n x\r\n {this.props.item.quantity\r\n ? this.props.item.quantity\r\n : \"qtt introuvable\"}\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Item;\r\n","import React from \"react\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport {\r\n faComment,\r\n faList,\r\n faStickyNote,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport { Card } from \"react-bootstrap\";\r\nimport \"./Bl.css\";\r\n\r\nimport inArrow from \"./BlAssets/in_arrow_v2.png\";\r\nimport outArrow from \"./BlAssets/out_arrow.png\";\r\n\r\nimport pictoPhoto from \"./BlAssets/photo.png\";\r\nimport pictoSign from \"./BlAssets/sign.png\";\r\nimport pictoSignDisabled from \"./BlAssets/signDisabled.png\";\r\nimport Item from \"../Item/Item\";\r\n\r\nexport class Bl extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n render() {\r\n let blImgArrow;\r\n let pictoPhotoPlaceholder;\r\n let pictoSignPlaceholder;\r\n\r\n if (this.props.bl.delivery_type === \"OUT\") {\r\n blImgArrow = (\r\n \r\n );\r\n } else if (this.props.bl.delivery_type === \"IN\") {\r\n blImgArrow = (\r\n \r\n );\r\n } else {\r\n blImgArrow = null;\r\n }\r\n\r\n if (this.props.bl.is_dropable && !this.props.bl.is_present) {\r\n pictoPhotoPlaceholder = (\r\n \r\n );\r\n } else {\r\n //on affiche toujours le picto photo pendant le covid\r\n // pictoPhotoPlaceholder = {\"picto_photo_disabled\"}\r\n pictoPhotoPlaceholder = (\r\n \r\n );\r\n }\r\n\r\n if (this.props.bl.is_present) {\r\n pictoSignPlaceholder = (\r\n \r\n );\r\n } else {\r\n pictoSignPlaceholder = (\r\n \r\n );\r\n }\r\n //let clientId = parseInt(localStorage.getItem(\"fleetClientId\"));\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n {this.props.bl.proofs && this.props.bl.proofs?.length > 0\r\n ? this.props.bl.proofs.map((proof, index) => {\r\n return (\r\n <>\r\n {this.props.bl.proofs?.length > 1 ? (\r\n {`${\r\n proof.doc_type === \"PROOF_SIGN\"\r\n ? \"Signature\"\r\n : \"Photo\"\r\n } ${index + 1}`}\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 : null}\r\n
\r\n
\r\n \r\n {blImgArrow}\r\n
\r\n {\" \"}\r\n {this.props.bl.delivery_detail_key}{\" \"}\r\n {this.props.bl.status === \"RETURNED\" ? \"(Retourné)\" : \"\"}\r\n {this.props.bl.status === \"CANCELED\" ? \"(Non livré)\" : \"\"}\r\n
\r\n
\r\n {this.props.bl.status === \"CANCELED\" ? (\r\n \r\n {\" \"}\r\n {this.props.bl.issue.reason_id\r\n ? this.props.bl.issue.reason_message\r\n : \"n.c\"}\r\n \r\n ) : null}\r\n\r\n {this.props.bl.reserve?.message ? (\r\n \r\n {\" \"}\r\n {this.props.bl.reserve\r\n ? this.props.bl.reserve.message\r\n : \"n.c\"}\r\n \r\n ) : null}\r\n\r\n {this.props.bl.receiver1 || this.props.bl.receiver2 ? (\r\n
\r\n {`Receveurs : ${\r\n this.props.bl.receiver1 ? this.props.bl.receiver1 : \"\"\r\n } ${\r\n this.props.bl.receiver2 ? this.props.bl.receiver2 : \"\"\r\n }`}\r\n
\r\n ) : null}\r\n
\r\n
\r\n
{pictoPhotoPlaceholder}
\r\n
{pictoSignPlaceholder}
\r\n
\r\n
\r\n {this.props.bl?.items?.map((value, index) => {\r\n return ;\r\n })}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Bl;\r\n","import React, { Component } from \"react\";\r\n\r\nimport \"../App/App.scss\";\r\nimport \"./StatusComponent.css\";\r\n\r\nexport class StatusComponent extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n statusColorClass: null,\r\n statusText: \"\",\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.computeStatus();\r\n }\r\n\r\n computeStatus() {\r\n let newStatusText = \"\";\r\n let newColorClass = \"\";\r\n\r\n switch (this.props.statusType) {\r\n case \"tour\":\r\n switch (this.props.status) {\r\n case \"CREATED\":\r\n newStatusText = \"Créée\";\r\n newColorClass = \"ok\";\r\n break;\r\n case \"STARTED\":\r\n newStatusText = \"Débutée\";\r\n newColorClass = \"ok\";\r\n break;\r\n case \"DONE\":\r\n newStatusText = \"Terminée\";\r\n newColorClass = \"ok\";\r\n break;\r\n case \"LATE\":\r\n newStatusText = \"En retard\";\r\n newColorClass = \"late\";\r\n break;\r\n case \"ISSUE\":\r\n newStatusText = \"Problème\";\r\n newColorClass = \"issue\";\r\n break;\r\n default:\r\n newStatusText = \"default\";\r\n newColorClass = \"issue\";\r\n }\r\n break;\r\n case \"step\":\r\n if (this.props?.is_handled === 0) {\r\n return this.setState({\r\n statusText: \"Non géré\",\r\n statusColorClass: \"issue\",\r\n });\r\n }\r\n\r\n switch (this.props.status) {\r\n case \"CREATED\":\r\n newStatusText = \"Planifiée\";\r\n newColorClass = \"ok\";\r\n break;\r\n case \"STARTED\":\r\n newStatusText = \"Livraison en cours\";\r\n newColorClass = \"ok\";\r\n break;\r\n case \"DELIVERED\":\r\n newStatusText = \"Livrée\";\r\n newColorClass = \"ok\";\r\n break;\r\n case \"PARTIALLY_DELIVERED\":\r\n newStatusText = \"Partiellement délivrée\";\r\n newColorClass = \"issue\";\r\n break;\r\n case \"CANCELED\":\r\n newStatusText = \"Non livrée\";\r\n newColorClass = \"issue\";\r\n break;\r\n case \"LATE\":\r\n newStatusText = \"En retard\";\r\n newColorClass = \"late\";\r\n break;\r\n default:\r\n newStatusText = \"default\";\r\n newColorClass = \"issue\";\r\n }\r\n break;\r\n case \"bl\":\r\n switch (this.props.status) {\r\n case \"CREATED\":\r\n newStatusText = \"Créée\";\r\n newColorClass = \"ok\";\r\n break;\r\n case \"STARTED\":\r\n newStatusText = \"Débuté\";\r\n newColorClass = \"ok\";\r\n break;\r\n case \"DONE\":\r\n newStatusText = \"Livré\";\r\n newColorClass = \"ok\";\r\n break;\r\n case \"CANCELED\":\r\n newStatusText = \"Non livré\";\r\n newColorClass = \"late\";\r\n break;\r\n case \"RETURNED\":\r\n newStatusText = \"retourné\";\r\n newColorClass = \"issue\";\r\n break;\r\n default:\r\n newStatusText = \"default\";\r\n newColorClass = \"issue\";\r\n }\r\n break;\r\n default:\r\n newStatusText = \"default\";\r\n newColorClass = \"issue\";\r\n }\r\n\r\n if (this.props.isLate) {\r\n this.setState({\r\n statusText: newStatusText,\r\n statusColorClass: \"late\",\r\n });\r\n } else {\r\n this.setState({\r\n statusText: newStatusText,\r\n statusColorClass: newColorClass,\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.state.statusText}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default StatusComponent;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nexport const MyLoader = (props) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n);\r\n\r\nexport const MyStepLoader = (props) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n);\r\n\r\nexport const MyBLLoader = (props) => (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n);\r\n\r\nexport default MyLoader;\r\n","import React, { Component, useContext } from \"react\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport {\r\n faCaretRight,\r\n faWeightHanging,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport { AccordionContext } from \"react-bootstrap\";\r\n\r\nimport { Card, Badge, Accordion, useAccordionButton } from \"react-bootstrap\";\r\n\r\nimport \"../App/App.scss\";\r\nimport \"./Step.css\";\r\nimport box from \"./box.png\";\r\nimport inImg from \"./StepAssets/in_v2.png\";\r\nimport invalidImg from \"./StepAssets/in.png\";\r\nimport outImg from \"./StepAssets/out.png\";\r\nimport inOutImg from \"./StepAssets/in_out_v2.png\";\r\n\r\nimport { Bl } from \"../Bl/Bl\";\r\nimport StatusComponent from \"../StatusComponent/StatusComponent\";\r\nimport { setBlsForATour } from \"../../reducer/Action\";\r\nimport connect from \"react-redux/es/connect/connect\";\r\nimport { MyBLLoader } from \"../Loader/MyLoader\";\r\n\r\nimport pictoPhotoDisabled from \"../Bl/BlAssets/photoDisabled.png\";\r\nimport pictoPhoto from \"../Bl/BlAssets/photo.png\";\r\nimport pictoSign from \"../Bl/BlAssets/sign.png\";\r\nimport pictoSignDisabled from \"../Bl/BlAssets/signDisabled.png\";\r\nimport pictoCommentDisabled from \"./StepAssets/icon_comment_disabled.png\";\r\nimport pictoComment from \"./StepAssets/icon_comment.png\";\r\nimport informationPicto from \"./StepAssets/information.png\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nfunction CustomToggle({ children, eventKey, searchTourId, activeId, setActiveId }) {\r\n const history = useHistory()\r\n const decoratedOnClick = useAccordionButton(eventKey, () => {\r\n if(searchTourId){\r\n if (activeId === eventKey) {\r\n history.push(\"/tour?tour_id=\"+searchTourId)\r\n setActiveId && setActiveId(null)\r\n } else {\r\n history.push(\"/tour?tour_id=\"+searchTourId+\"&step_id=\"+eventKey)\r\n setActiveId && setActiveId(eventKey)\r\n }\r\n }\r\n else{\r\n history.push(\"/tour\")\r\n setActiveId && setActiveId(null)\r\n }\r\n });\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport class Step extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n detailed: false,\r\n statusColorClass: \"\",\r\n isLoading: false,\r\n localBls: null,\r\n };\r\n }\r\n static contextType = AccordionContext;\r\n\r\n componentDidMount() {\r\n if (this.props.step.is_late) {\r\n this.setState({\r\n statusColorClass: \"late\",\r\n });\r\n }\r\n if(this.props.searchStepId?.toString() === this.props.step.step_id?.toString()){\r\n document.getElementById(\"step_id_accordion_\"+this.props.searchStepId)?.click()\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.exactMatch !== this.props.exactMatch) {\r\n if (\r\n this.props.exactMatch &&\r\n this.props.step.step_id === this.props.exactMatch\r\n ) {\r\n this.handleStepCollapse(null, this.props.step.step_id, null);\r\n }\r\n }\r\n if (prevProps.activeId !== this.props.activeId && this.props.step.step_id === this.props.activeId) {\r\n this.handleStepCollapse(null, this.props.step.step_id, null);\r\n }\r\n if(prevProps.searchTourId !== this.props.searchTourId && !this.props.searchTourId && this.props.step.step_id === this.props.activeId){\r\n document.getElementById(\"step_id_accordion_\"+this.props.activeId)?.click()\r\n }\r\n }\r\n\r\n handleStepCollapse = (e, id, tour_id) => {\r\n if (this.state.localBls == null && !this.state.isLoading) {\r\n this.setState({\r\n isLoading: true,\r\n });\r\n\r\n const url = new URL(\r\n this.props.BASE_URL.concat(\"/delivery-details/by-step-id/\", id)\r\n );\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = { method: \"GET\", headers: myHeaders, cache: \"no-cache\" };\r\n\r\n console.log(\r\n \"GET request @ \",\r\n this.props.BASE_URL.concat(\"/steps/getBls/\", id)\r\n );\r\n fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n if (result.status === \"Success\") {\r\n // this.props.tour.steps = result.steps;\r\n if (result.deliveryDetails) {\r\n this.setState({\r\n localBls: result.deliveryDetails,\r\n });\r\n //this.props.setBlsForATour(tour_id, id, result.steps.bls);\r\n }\r\n this.setState({\r\n isLoading: false,\r\n });\r\n }\r\n });\r\n } else {\r\n this.setState({\r\n isLoading: false,\r\n });\r\n console.log(\"Mauvaise réponse du réseau\");\r\n response.json().then(function (result) {\r\n console.log(\"result\", result);\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n this.setState({\r\n isLoading: false,\r\n });\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n let imgComponent = null;\r\n let commentComponent = null;\r\n let pictoComponent = null;\r\n\r\n if (this.props.step.is_handled === 0) {\r\n imgComponent = (\r\n \r\n );\r\n } else {\r\n if (this.props.step?.delivery_type === \"IN\") {\r\n imgComponent = (\r\n \r\n );\r\n } else if (this.props.step?.delivery_type === \"OUT\") {\r\n imgComponent = (\r\n \r\n );\r\n } else if (this.props.step?.delivery_type === \"IN/OUT\") {\r\n imgComponent = (\r\n \r\n );\r\n } else {\r\n imgComponent = (\r\n \r\n );\r\n }\r\n }\r\n if (this.props.step?.is_present) {\r\n pictoComponent = (\r\n \r\n );\r\n } else {\r\n pictoComponent = (\r\n \r\n );\r\n }\r\n\r\n if (this.props.step.comments) {\r\n commentComponent = (\r\n \r\n );\r\n }\r\n\r\n let stepInvalidClassName = \"\";\r\n\r\n if (this.props.step.is_handled === 0) {\r\n if (this.props.step.does_contain_bl_for_CAL === 1) {\r\n stepInvalidClassName = \"invalid-CAL\";\r\n } else {\r\n stepInvalidClassName = \"invalid\";\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n {\r\n this.handleStepCollapse(\r\n e,\r\n this.props.step.step_id,\r\n this.props.step.tour_id\r\n );\r\n }}\r\n >\r\n
\r\n
{imgComponent}
\r\n
\r\n \r\n {this.props.step.end_address?.name || \"Étape invalide\"}{\" \"}\r\n \r\n \r\n \r\n {!this.props.step.end_address?.address_number &&\r\n !this.props.step.end_address?.street &&\r\n !this.props.step.end_address?.city &&\r\n !this.props.step.end_address?.zipcode\r\n ? \"Aucune information pour cette étape\"\r\n : null}\r\n {this.props.step.end_address?.address_number}{\" \"}\r\n {this.props.step.end_address?.street}{\" \"}\r\n {this.props.step.end_address?.city}\r\n {this.props.step.end_address?.zipcode\r\n ? `, ` + this.props.step.end_address?.zipcode\r\n : null}\r\n \r\n \r\n Attendu au plus tard {\" \"}\r\n {this.props.step.estimated_delivery\r\n ? new Date(\r\n this.props.step.estimated_delivery\r\n ).toLocaleDateString(\"fr-FR\", {\r\n day: \"numeric\",\r\n month: \"short\",\r\n year: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n })\r\n : \"Date de livraison inconnue\"}{\" \"}\r\n {\" \"}\r\n {this.props.step.total_weight\r\n ? `${parseInt(this.props.step.total_weight)}kg`\r\n : \"Poids non renseigné\"}\r\n \r\n
\r\n
\r\n
\r\n {this.props.stepsNumber}\r\n
\r\n {commentComponent}\r\n {pictoComponent}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {\"inmagei\"}\r\n \r\n {this.props.step.comments\r\n ? this.props.step.comments\r\n : \"Pas de commentaire de livraison pour cette étape.\"}\r\n \r\n
\r\n\r\n
\r\n
\r\n Liste des BL(s){\" \"}\r\n \r\n {this.state?.localBls ? this.state?.localBls.length : 0}\r\n \r\n
\r\n
\r\n\r\n
\r\n {this.state.isLoading ? (\r\n
\r\n \r\n \r\n
\r\n ) : (\r\n
\r\n {this.props?.step.step_id &&\r\n this.state?.localBls?.length > 0 &&\r\n this.state?.localBls?.map((value, index) => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state /*, ownProps*/) => {\r\n return {\r\n BASE_URL: state.BASE_URL,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = { setBlsForATour };\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Step);\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAXCAYAAAAV1F8QAAAABHNCSVQICAgIfAhkiAAAAchJREFUSEu9VstNw0AQfePYZ9JBbCk756QDqACoAFIBdEBSAemA0EGoAFIB4bobyXQAOcfSoIlsyUTx7ipC7DGenTef996GEDjW2gUR3XSFichnlmXjoii+fanI99E5dw/gMVSMiKyzLLvwge2BrLUjIro8SNgHoEBRR8GIaHkQvDbGvOhvZK29JaKnqGwnBGkBzDwm59wngMEJOaKvENG1Akn0jdMDZ9FAIvKhO1CWEVEuIjkRXQE4i8CPAtoCuDLGvB0mLMuyv9vt5j7613eCQNs0TfOGtmVZ5lVVDURky8zrBjikNQBBoAvtRCuvquqhTXcdIYDrBjBAqm4g3Qkzj7TqzWYzF5G7I7v4TtO00I4DMvF2NDPGTOtxlZ6FN3Ha9VdHnLejCTMvnHPnAF49QCtjjMbAI5VwR7U9vXtM9ZmZb08GEpF2gk73UNUPh8NloCBvR+1Fq+mqjn6Js11MgOJ+eovIgpknOpaaFDqic6V2kiRL7aTl/p3jjdER2mDH9lSPTMmiz0rXCQp2f1GtPkmSea/Xe2lcQgEA3BHRngiBEwcUyhLx/X+ARGSiL6z3z0dEtaEQNeYRtaxe1f3XL+0KwFSN+QcfjSy1ZX4BswAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAApCAYAAABKvBuPAAAABHNCSVQICAgIfAhkiAAAAs9JREFUWEfVmV1u2kAQx2ek9XPpCYolj19bTtBwgtATlJygzQlKTlB6gtAThJ6gzglCXneRHG4QnjFMNZah5sP22pjWHsmyhPfj5z/j3ZlZhDMsDMNOFEXvAeAKAD4AQCd1343MzDNEfAUAuc82m82z7/uzM6YGLNtZYNfr9TUzDwBArkrGzC+IOGXmn1Vewho8UfcLAHxNlK0EnNEpAIA7IpK7lVmBG2O+XQj4EDJg5lubfyAXXGstfvuAiF0rGeprNCai27zhMsG11kNEvK+PpdxI8kE7jtN3XVc+6iM7CZ64xqjcVPW3FngAuDnlOkfgxhj5+L7Xj1FtxCzl98Dn8/mAmR+qTXG5XgLv+34vPcMOPAzDbhRFTxdY6mp5I0T84XmeeENsO3BjzO9kB6xloksMwsy9rb/H4MYY2bIFvOkWEFF/p3gb1E4p2pcdFhPfDpsu9ZYviW2G2LTlz0LAVyJ6K+BTALi26NCYJkopF7XWT4goMUlrDBE/ieLcGuK/oHetBpfo603LVI8Vl6zjY5vAmfmmreC9Nq7jSyLqtG7nBIBfRDSIgyyttdQ7pD7SeBP/9n1/sgX/r/llCbUWRBQn7ul4vPGri+yYnudJiLIH3vSY/JGIhDG2vZyzwZHiUinVTZcqjrJ8rfUEET+X8LtLN10y89VhiSKrrtKUwGuJiMOtX6cVOgJvUInipNInfVx+bEhi8aiUGrqu+5Llh3uKNyD/XALAiIjGRR/O4aoiVazKxfqiyXKeC/BYKTXOKnIe9k1vQLbruPjeFBHlBc+K45n5GREnSqmJLfCej8tpw2q1ktyzqA6+53tJIUleWC7p+y5PdQGVcyAACBzHCfJ8uOjf28Yq97Ls5DReMPNIgpuiAeUwABHlEGtnSqlZWUWL5smNxxOFxjbARRPV/VzA0znnAgBkCZLTsMDmLKZuINvxrA6vbAf7l+3+AOdxTbkL6H0cAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAApCAYAAABKvBuPAAAABHNCSVQICAgIfAhkiAAAAwpJREFUWEfVmVFe2kAQh/+zYuhb0xOUnkA8QfEE2hMUXxp9MMgJqicI4APSF/AE0hMYT2A8QfUG+Jjg7vS32CBBIAFCTfK6OzPfzk52Z2YJ63xdxywMt3YEUwXgMjFMJi4TyJxUy2CPmAaK4AHsgdT98EfdW8c0LS3cdcztQOwT6ICAg6XlQwHmB0XUB8mrVRaRHLzrmEZQqAHqdNqjK8OPFwFXMp0/H5+4SXUlAjc6Fz83AjxNyXCVkPUkO7AQfPuXUxZKXIOolNQTacxTQGNo2fVFuuaCb7dbVSHQTQNkFR36hw4MtYfD+mCW/ExwHRoEPlvFYJoyGp5JHc4KnTfgxU7rFICTJsA6uuZ5PgJudC4OCHy9jqFNyI7grdrupO5X8LZTMoS4S/2oS2klirk5PKrpaBh9Y/DiZesGhEpKdjaiRpHcDeN9BF5oX1S2BN9sxFqaShmuf2TvjT2eB2+H65eK9vQNS2g7paLY+pOmYzapi8FXgVWrUtaOv7hFM3gQWLVPZFw2+0S0HyeQpXFfyS9kdJr6CCxnCSyOhUHfdKhw3MSsjTP4PL/gRqc1IOBj1ry6iCf0uK46vuYJXCkc6lDJHzjJ3Rye43gKLNvM383J/Ds4qukOA2Bctjwi7OQhznV8D4/t3gj8vevLJRz26Fv2qHB/zcdz8JPqGzOwTvoR8Bzk5Le+ZY8LnUjNmdVMkYGnwJClyVbFmyrf6DR7BPq+RNxtdKqGZpKV6RbFzL5KVhIvDQ1QNYzrSQ/N8Hg2WhTzPB3CvwXPRmFx6ytZxXH9YV4cRsHfuf7UXibgzLfsRtyPM9XJal2v1ayPszZn/CWWuREYqjGvyTktOgZPeo7/M9LHy4vEWnk8M+6J0PMN2UsKHI3xrmMWfXGXoA8eiT29WCFUhaDfgKCv4s8LCwDGPYg9VuQOId1FMRy3eWGS1SVCdcHkR6VwppObOIX6MYBlIfJ49fzh2VvWo3F2FubjeiuZ0UgCHGco7XGaqjkfAegjqK9IukneYtIGSqov0eNVUmX/c95fbFJY/ZcANGwAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAYAAABxLuKEAAAABHNCSVQICAgIfAhkiAAABZBJREFUeF7tXI1xm0oQZk8FvKSCKBXEqSBOAdYdFcSu4DkVPLuC2BUkqgCQC4hSQZwK4ldB8grg9s3HHBqEQBx/C/KEGc14xsAuH9/+3O4eFAgeURSdKaXeBEGwZOZzJ3pJRMuiGsz8GATBb/yI6BG/NE1/hGH4JKUujSkoiqIXSqkPDoRzInrRRx4zA5gtEW211us+92q6dhRgkiQBGIaITJMCXf/PzGBUzMzrMAy3Xe9Td92gwDhAbsqmMbTS5fsx85aZb4cEaBBgHh4eTJqmn6QBqQHoYxiG8FG9jl7ARFEEx/mZiHJH2kuZAS++s9aCQTC3TkdnYDabzaW1Fizp5VA7ae1xERw1M4dd2dMaGEQaIgIglx76zeGUa631fVtFWgHjQPlKRGdtBU15PjN/McZctdHBGxgkZ86fnBQoORjMjNB+5et3vIBxoIAps/QnvkxARs3M733AaQTmVM2nDixfszoKzHMDpWBWjT7nKDBxHCNHOZXo42tR2XlEdLVarb60XhIgT2Hmz62kndDJWGs5f1OZJVcyxmW03yWcLTP/R0RxEAR5SQFRT0tgDGdsjHlbJasSmDiOEYEk0vx7a+1NOUrgxSilQPN3AgDdaq1vynIOgMGC0Fobja0QEX1crVZ3x+QkSQImjcoeZ1Jvy0WwA2DiOP4psEr+prVuZKSLik9E9NfIL2qttd4LMnvASDlcpVR4cXEBNjQeSZKAVX83ntjzBGvt6yJr9oARYkugtW5MLPPnjKLoXCn1tedz+1y+x5qdglJsgYYzBSaw1r7MA8EOGAlHl7+2ogJNr1IqGLikbxcQMmBcNf9Xk5JD/b8p6yzKSZIEYfvDULKP3aeY12TAbDaba2b+JCEcMlx1DSHyaOnR9aG+S+kFOdZa6PWYASNpRvlDNq1yp1rA5vlVBkwcx78k0v/ym3f1EVT19/pCrg1zN4VO4InW2tAUdK0ACOuk3VppIkAytZAJG2NekrR/kfQXXWUh2aMkSbCA+qfrTZ7jddba9wAG9i2xigWGP+DSPMHEBIRImK7Q51YUmPJ6pAmgJElQRMLYiPRxS1LrIzxZm6WASyOmMvM1GMNSr+OEgPn2B5hqVvwBpsZaZIHxKWeWFpBT+ZgMGFHP70bEHpVS62N9nYmd771ouC7RtrI6PxPGZHnM6JX4GjueLTAw+SmXBLMFJlsSSJYOT8WUUHpF2QFdv59SSV5BziwZw8z/GmOWeaEKTa1XwuDMEpggCLI2Sl7aFCs4z50xeaE+L4ZPMfIxS8bkFYBdXymOY+z0GL1HbK3Nh3WemnaTwP9hpwpYppRCq3bsEkRW74W8YsNtdHNq02gr+zuJ6Fnsd+2AkegRty07FMEZWz8MMBljdlOpe831scuccwYmCII9n7cHzNhvZa7AgC3MvCx2Rg/GMcZkzYx9zEGEPABmzAYc2rLMfN92R8hms3lnrUVncvBxfWS6zHxW7qNXDvBITTEJZ9qV4uqmu+rGWbH1BrtXpZcJ0ljt8pay4NqRrzFNSvrpq+TVmVB+7tFZuOfc187nYOpeUuOQoOREkxSTfCa6GoFxRempyp+DY+XbqfACxs3oofk/9iJucCBKNzwYdO5sSvmFDhyscKeaQOgFmi9TvJxvlSan6HN8fIp3uD72etyea2SiY9dverHEhWTTNtPeq8e01cDlOajhzNXvJNbay6aR2d4+pu4GGFVj5uu5sAcsWSwW176bOEYDBjd2LRg04CdzzG6nHL7pcNeVJUWQvMK1r5lNAdDQgHSOSj4gAaDFYmGYGZujxvJBCfZSpmkaD8GQQaKSDziF/OdssVic43NM+HX1RfAd+AQTfmmabps6DG10rDp3UFPyUSZviSildh/vylskheuzj3cR0e80TfH34xisOKbv/z6IOTmrZujUAAAAAElFTkSuQmCC\"","import React, { Component, useEffect, useState } from \"react\";\r\n\r\nimport { Accordion } from \"react-bootstrap\";\r\nimport deferComponentRender from \"../deferComponentRender\";\r\n\r\nimport \"../App/App.scss\";\r\nimport Step from \"../Step/Step\";\r\nimport { MyStepLoader } from \"../Loader/MyLoader\";\r\n\r\nfunction AccccordionSteps(props) {\r\n const [activeId, setActiveId] = useState(null);\r\n \r\n return (\r\n \r\n {props.steps?.map((value) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n}\r\n\r\nfunction StepList(props) {\r\n const DeferredTimeline = deferComponentRender(AccccordionSteps);\r\n \r\n if (props.steps.length > 0) {\r\n return ;\r\n } else {\r\n if (props.isLoading) {\r\n return ;\r\n } else {\r\n return (\r\n
\r\n

Aucune étape n'est associée à cette tournée.

\r\n
\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default React.memo(StepList);\r\n","import hoistStatics from \"hoist-non-react-statics\";\r\nimport React from \"react\";\r\n\r\n/**\r\n * Allows two animation frames to complete to allow other components to update\r\n * and re-render before mounting and rendering an expensive `WrappedComponent`.\r\n */\r\nexport default function deferComponentRender(WrappedComponent) {\r\n class DeferredRenderWrapper extends React.Component {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.state = { shouldRender: false };\r\n }\r\n\r\n componentDidMount() {\r\n window.requestAnimationFrame(() => {\r\n window.requestAnimationFrame(() =>\r\n this.setState({ shouldRender: true })\r\n );\r\n });\r\n }\r\n\r\n render() {\r\n return this.state.shouldRender ? (\r\n \r\n ) : null;\r\n }\r\n }\r\n\r\n return hoistStatics(DeferredRenderWrapper, WrappedComponent);\r\n}\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faInfo } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { faCheck, faAlarmClock } from '@fortawesome/pro-light-svg-icons'\r\n\r\nimport { Card, Accordion, useAccordionButton } from \"react-bootstrap\";\r\n\r\nimport \"../App/App.scss\";\r\nimport earth from \"./earth.png\";\r\n\r\nimport StepList from \"../StepList/StepList\";\r\nimport StatusComponent from \"../StatusComponent/StatusComponent\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nimport Skeleton from \"react-loading-skeleton\";\r\nimport { faEarthEurope, faHourglass, faHourglassClock } from \"@fortawesome/pro-duotone-svg-icons\";\r\nimport { faRoute } from \"@fortawesome/pro-duotone-svg-icons\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport { useLayoutEffect } from \"react\";\r\n\r\nconst ContextAwareToggle = ({\r\n children,\r\n eventKey,\r\n setActiveId,\r\n activeId,\r\n}) => {\r\n const history = useHistory()\r\n\r\n const decoratedOnClick = useAccordionButton(eventKey, () => {\r\n if (activeId === eventKey) {\r\n history.push(\"/tour\")\r\n setActiveId && setActiveId(null)\r\n } else {\r\n history.push(\"/tour?tour_id=\"+eventKey)\r\n setActiveId && setActiveId(eventKey)\r\n }\r\n });\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nconst TourItem = (props) => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const BASE_URL = useSelector((state) => state.BASE_URL);\r\n const [localSteps, setLocalSteps] = useState(null);\r\n const titleRef = useRef();\r\n\r\n useEffect(() => {\r\n if (props.exactMatch) handleTourCollapse(props.exactMatch);\r\n }, [props.exactMatch]);\r\n\r\n useEffect(() => {\r\n if(props.activeId?.toString() === props.tour?.tour_id?.toString()){\r\n handleTourCollapse(props.activeId);\r\n }\r\n }, [props.activeId])\r\n\r\n useEffect(() => {\r\n if(props.searchTourId?.toString() === props.tour?.tour_id?.toString()){\r\n document.getElementById(\"tour_id_accordion_\"+props.searchTourId)?.click()\r\n document.getElementById(\"tour_id_accordion_\"+props.searchTourId)?.scrollIntoView({\"behavior\": \"smooth\", \"block\": \"start\"})\r\n }\r\n }, [props.searchTourId])\r\n\r\n // This function will fetch\r\n function handleTourCollapse(id) {\r\n if (localSteps == null && !isLoading) {\r\n setIsLoading(true);\r\n\r\n const url = new URL(\r\n `${BASE_URL}/steps/byTour/${id}${\r\n props.searchValue ? \"?query=\" + props.searchValue : \"\"\r\n }`\r\n );\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = { method: \"GET\", headers: myHeaders, cache: \"no-cache\" };\r\n\r\n // console.log(\r\n // \"GET request @ \",\r\n // `${BASE_URL}/steps/byTour/${id}${\r\n // props.searchValue ? \"?query=\" + props.searchValue : \"\"\r\n // }`\r\n // );\r\n fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n if (result.status === \"Success\") {\r\n setLocalSteps(result.steps);\r\n //props.setStepsForATour(props.tour.tour_id, result.steps);\r\n setIsLoading(false);\r\n }\r\n });\r\n } else {\r\n setIsLoading(false);\r\n\r\n console.log(\"Mauvaise réponse du réseau\");\r\n response.json().then(function (result) {\r\n console.log(\"result\", result);\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n setIsLoading(false);\r\n\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n });\r\n }\r\n }\r\n \r\n\r\n const getCreationDate = (creation_date) => {\r\n let date = new Date(creation_date)\r\n return date.getHours().toString().padStart(2, '0')+':'+date.getMinutes().toString().padStart(2, '0')\r\n }\r\n\r\n const statusTag = (status) => {\r\n switch (status) {\r\n case \"DONE\":\r\n return(\"Terminée\")\r\n case \"STARTED\":\r\n return(\"En cours\")\r\n case \"CREATED\":\r\n return(\"Créée\")\r\n case \"ISSUE\":\r\n return(\"Problème\")\r\n default:\r\n return(\"Error\")\r\n }\r\n }\r\n \r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Tournée n°{props.tour.tour_key || \"tour_key\"} - importée à {getCreationDate(props.tour.creation_date)}\r\n \r\n \r\n Véhicule {props.tour.vehicule_key || }{\" \"}\r\n \r\n
\r\n
\r\n \r\n Livraisons\r\n \r\n \r\n {props?.tour?.steps?.reduce((acc, val) => val.status == \"DELIVERED\" ? acc + 1 : acc, 0)} sur {props?.tour?.steps?.length}\r\n \r\n
\r\n
\r\n \r\n Ponctualité\r\n \r\n \r\n {(props?.tour?.steps?.reduce((acc, val) => val.is_late == 0 ? acc + 1 : acc, 0) / props.tour?.steps?.length * 100).toFixed(2) + \"%\"} {\" - \"} \r\n {(props?.tour?.steps?.reduce((acc, val) => val.is_late == 1 ? acc + 1 : acc, 0) / props.tour?.steps?.length * 100).toFixed(2) + \"%\"}\r\n \r\n
\r\n
\r\n
\r\n {statusTag(props.tour.status)}\r\n
\r\n
\r\n
\r\n
\r\n Détails\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default React.memo(TourItem);\r\n","export default __webpack_public_path__ + \"static/media/earth.ee84810d.png\";","export default __webpack_public_path__ + \"static/media/truck.7e6280e2.png\";","import React, { Component } from \"react\";\r\n\r\nimport \"./EmptyListComponent.css\";\r\nimport \"../App/App.scss\";\r\nimport componentImg from \"./earth.png\";\r\nimport componentImg2 from \"./truck.png\";\r\n\r\nimport { setStepsForATour, setTours } from \"../../reducer/Action\";\r\nimport connect from \"react-redux/es/connect/connect\";\r\n\r\nexport class EmptyListComponent extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isLoading: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n //this.setState((state, props) => ({\r\n // isActive: props.isActive,\r\n // status: props.status\r\n //}));\r\n }\r\n\r\n componentWillUnmount() {}\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n Pas de {this.props.type} disponible.\r\n
\r\n
\r\n {this.props.type === \"véhicule\" ? \"Aucun\" : \"Aucune\"}{\" \"}\r\n {this.props.type} correpondant à votre recherche n'a été trouvée.\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state /*, ownProps*/) => {\r\n return {\r\n BASE_URL: state.BASE_URL,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = { setStepsForATour };\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(EmptyListComponent);\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\nimport { Accordion, AccordionContext } from \"react-bootstrap\";\r\n\r\nimport \"../App/App.scss\";\r\nimport TourItem from \"../TourItem/TourItem\";\r\nimport { EmptyListComponent } from \"../EmptyListComponent/EmptyListComponent\";\r\nimport MyLoader from \"../Loader/MyLoader\";\r\nimport SkeletonLoader from \"tiny-skeleton-loader-react\";\r\n\r\nfunction Accccordion(props) {\r\n let lastDate;\r\n const [activeId, setActiveId] = useState(null);\r\n const [searchTourId, setSearchTourId] = useState(null);\r\n const [searchStepId, setSearchStepId] = useState(null);\r\n\r\n useEffect(() => {\r\n if (props.exactMatch) {\r\n setActiveId(props.exactMatch);\r\n }\r\n }, [props.exactMatch]);\r\n\r\n useEffect(() => {\r\n const url = new URL(window.location.href)\r\n const searchParams = new URLSearchParams(url.search)\r\n if(searchParams.get(\"tour_id\")){\r\n setSearchTourId(searchParams.get(\"tour_id\"))\r\n }\r\n if(searchParams.get(\"step_id\")){\r\n setSearchStepId(searchParams.get(\"step_id\"))\r\n }\r\n }, [])\r\n \r\n return (\r\n
\r\n \r\n {props.tours.map((value, index) => {\r\n if (lastDate !== value.starting_date) {\r\n lastDate = value.starting_date;\r\n return (\r\n
\r\n

\r\n {new Date(value.starting_date).toLocaleDateString(\"fr-FR\", {\r\n day: \"numeric\",\r\n month: \"short\",\r\n year: \"numeric\",\r\n })}\r\n

\r\n
\r\n \r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n })}\r\n \r\n
\r\n );\r\n}\r\n\r\nfunction TourItemList(props) {\r\n //const DeferredTimeline = deferComponentRender(Accccordion);\r\n\r\n if (props.tours?.length > 0) {\r\n return ;\r\n } else {\r\n if (!props.isLoading) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default React.memo(TourItemList);\r\n","export function computeTourStatus(rawStatus) {\r\n let resultStatus = \"\";\r\n switch (rawStatus) {\r\n case \"CREATED\":\r\n case \"STARTED\":\r\n case \"DONE\":\r\n resultStatus = \"ok\";\r\n break;\r\n case \"LATE\":\r\n resultStatus = \"late\";\r\n break;\r\n case \"ISSUE\":\r\n resultStatus = \"issue\";\r\n break;\r\n default:\r\n resultStatus = \"\";\r\n break;\r\n }\r\n return resultStatus;\r\n}\r\n\r\nexport function computeTourSortStatusname(rawStatus) {\r\n let resultStatus = \"\";\r\n switch (rawStatus) {\r\n case \"asc\":\r\n resultStatus = \"Ascendant\";\r\n break;\r\n case \"desc\":\r\n resultStatus = \"Descendant\";\r\n break;\r\n default:\r\n resultStatus = \"\";\r\n break;\r\n }\r\n return resultStatus;\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faFilter, faSort, faTrash } from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nimport { Row, Col, Button, Dropdown, Spinner } from \"react-bootstrap\";\r\n\r\nimport memoize from \"memoize-one\";\r\n\r\nimport \"../../App/App.scss\";\r\nimport \"./Tour.css\";\r\n\r\nimport TourItemList from \"../../TourItemList/TourItemList\";\r\nimport connect from \"react-redux/es/connect/connect\";\r\nimport { tour_status } from \"../../../constants/tour_status\";\r\nimport { computeTourSortStatusname } from \"../../../utils/tours\";\r\n\r\nexport class Tour extends Component {\r\n /*******\r\n *\r\n * States\r\n *\r\n *******/\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n filterByID: null,\r\n isFiltering: true,\r\n isOrdering: true,\r\n isSorting: true,\r\n isLoading: false, // initial loading tours\r\n isLoadingMore: false, // loading more tours\r\n isLoadingSearch: false, // loading tour after user type in the search bar\r\n order: {\r\n displayName: computeTourSortStatusname(\"desc\"),\r\n status: \"desc\",\r\n },\r\n filter: {\r\n displayName: tour_status?.properties[\"all\"]?.display_name,\r\n status: \"all\",\r\n },\r\n localTours: [],\r\n localToursCount: 0,\r\n endDate: null,\r\n isReachingEnd: false,\r\n searchValue: \"\",\r\n isTyping: false,\r\n exactMatch: null,\r\n usedBlID: false,\r\n };\r\n }\r\n\r\n /*******\r\n *\r\n * Lifecycle\r\n *\r\n *******/\r\n async componentDidMount() {\r\n this.timer = null;\r\n\r\n //get the tour by id if contained in the url\r\n const { match } = this.props;\r\n\r\n // get all steps for each tour\r\n this.handleChangeSort(null, \"desc\");\r\n\r\n //set the correct status filter if contained in the url\r\n if (this.props.status == null) {\r\n this.handleChange(null, tour_status.ALL);\r\n } else {\r\n this.handleChange(null, this.props.status);\r\n }\r\n this.fetchToursAndFilter(match?.params?.id ? match.params.id : null);\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (this.props?.match?.params?.id !== prevProps?.match?.params?.id) {\r\n this.fetchToursAndFilter(\r\n this.props?.match?.params?.id ? this.props?.match.params.id : null\r\n );\r\n }\r\n\r\n if (this.state.localTours !== prevState.localTours) {\r\n this.setState({\r\n localToursCount: this.state.localTours?.length || 0,\r\n });\r\n }\r\n if (\r\n this.state.order?.status !== prevState.order?.status ||\r\n this.state.filter?.status !== prevState.filter?.status\r\n ) {\r\n this.filteringFunction(this.state.filter, this.state.order);\r\n }\r\n\r\n if (\r\n this.props.location?.state?.blId &&\r\n this.props.location?.state?.blId !== this.state.searchValue &&\r\n !this.state.usedBlID\r\n ) {\r\n this.setState({ usedBlID: true });\r\n this.handleSearchBar(this.props.location?.state?.blId);\r\n }\r\n }\r\n\r\n /*******\r\n *\r\n * Methods\r\n *\r\n *******/\r\n\r\n async fetchToursAndFilter(_id) {\r\n this.setState({\r\n isLoading: true,\r\n });\r\n if (!_id) {\r\n await this.getTourFilter(); // this will get all tours dates for pagination purpose and store it in \"filters\" state\r\n await this.getTourPaginated(); // get all tours corresponding to the stored dates and store them to localTours state\r\n } else {\r\n await this.getTourByID(_id);\r\n }\r\n\r\n setTimeout(() => this.setState({ isLoading: false }), 100);\r\n }\r\n\r\n getTourByID = (_id) => {\r\n let loadingState = {\r\n isLoadingMore: true,\r\n isReachingEnd: false,\r\n };\r\n\r\n this.setState(loadingState);\r\n\r\n const url = new URL(\"/tours/\" + _id, this.props.BASE_URL);\r\n\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = { method: \"GET\", headers: myHeaders, cache: \"no-cache\" };\r\n\r\n console.log(\"GET request @ \", url.toString());\r\n return fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n if (result.status === \"Success\") {\r\n // otherwise, set the result as first page index\r\n this.setState((prevState, props) => ({\r\n isLoadingMore: false,\r\n isLoadingSearch: false,\r\n localTours: [result.tour] || [],\r\n isReachingEnd: true,\r\n filterByID: true,\r\n }));\r\n } else if (result.status === \"Failed\") {\r\n this.setState({\r\n isLoadingMore: false,\r\n isLoadingSearch: false,\r\n localTours: [],\r\n filterByID: true,\r\n });\r\n } else {\r\n this.setState({\r\n isLoadingMore: false,\r\n isLoadingSearch: false,\r\n filterByID: true,\r\n });\r\n }\r\n });\r\n } else {\r\n this.setState({\r\n isLoadingSearch: false,\r\n isLoadingMore: false,\r\n filterByID: true,\r\n });\r\n console.log(\"Mauvaise réponse du réseau\");\r\n response.json().then(function (result) {\r\n console.log(\"result\", result);\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n this.setState({\r\n isLoadingMore: false,\r\n isLoadingSearch: false,\r\n filterByID: true,\r\n });\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n });\r\n };\r\n\r\n getTourPaginated = () => {\r\n let loadingState = {\r\n isLoadingMore: true,\r\n isReachingEnd: false,\r\n exactMatch: null,\r\n };\r\n\r\n // this will permit to show an indicator that the search query is loading\r\n if (this.state.searchValue !== \"\") {\r\n loadingState[\"isLoadingSearch\"] = true;\r\n }\r\n\r\n this.setState(loadingState);\r\n\r\n let params = {\r\n date: this.state.endDate\r\n ? this.state.endDate\r\n : new Date().toISOString().slice(0, 10),\r\n };\r\n\r\n // if the user is searching, we need to add the search value to the params\r\n if (this.state.searchValue !== \"\") {\r\n params[\"query\"] = this.state.searchValue;\r\n params[\"fieldToSearch\"] = \"blKey\";\r\n }\r\n\r\n // if the user is filtering, we need to add the filtering status to the params\r\n if (this.state.filter?.status && this.state.filter?.status !== \"all\") {\r\n params[\"statusFilter\"] = this.state.filter?.status.toUpperCase();\r\n }\r\n\r\n // if the user is ordering, we need to add the ordering status to the params\r\n if (this.state.order?.status) {\r\n params[\"order\"] = this.state.order?.status.toUpperCase();\r\n }\r\n\r\n const url = new URL(\"/tours\", this.props.BASE_URL);\r\n\r\n // append GET params to url\r\n for (let x in params) {\r\n url.searchParams.append(x, params[x]);\r\n }\r\n\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = { method: \"GET\", headers: myHeaders, cache: \"no-cache\" };\r\n\r\n // console.log(\"GET request @ \", url.toString());\r\n return fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n if (result.status === \"Success\") {\r\n let actualDateIndex = null;\r\n\r\n // get the index of the actual date in the filters array\r\n if (this.state.filters) {\r\n actualDateIndex = this.state.filters.indexOf(\r\n this.state.endDate\r\n );\r\n }\r\n\r\n // if the page index is not the first one or undefined, append the result data to the list\r\n if (actualDateIndex !== -1 && actualDateIndex !== 0) {\r\n this.setState((prevState, props) => ({\r\n isLoadingMore: false,\r\n isLoadingSearch: false,\r\n localTours: [...prevState.localTours, ...result.tours],\r\n filterByID: null,\r\n }));\r\n } else {\r\n // otherwise, set the result as first page index\r\n this.setState((prevState, props) => ({\r\n isLoadingMore: false,\r\n isLoadingSearch: false,\r\n localTours: result.tours || [],\r\n filterByID: null,\r\n }));\r\n // if the index is the last one, set isReachingEnd to true\r\n if (\r\n !this.state.isReachingEnd &&\r\n actualDateIndex + 1 >= this.state.filters.length - 1\r\n ) {\r\n this.setState({\r\n isReachingEnd: true,\r\n });\r\n\r\n // if there is only one result & the search query is not empty, set exactMatch to true\r\n if (result.tours?.length === 1 && params.query) {\r\n this.setState({\r\n exactMatch: result.tours[0].tour_id,\r\n });\r\n }\r\n }\r\n }\r\n } else if (result.status === \"Failed\") {\r\n this.setState({\r\n isLoadingMore: false,\r\n isLoadingSearch: false,\r\n localTours: [],\r\n filterByID: null,\r\n });\r\n } else {\r\n this.setState({\r\n isLoadingMore: false,\r\n isLoadingSearch: false,\r\n filterByID: null,\r\n });\r\n }\r\n });\r\n } else {\r\n this.setState({\r\n isLoadingSearch: false,\r\n isLoadingMore: false,\r\n filterByID: null,\r\n });\r\n console.log(\"Mauvaise réponse du réseau\");\r\n response.json().then(function (result) {\r\n // console.log(\"result\", result);\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n this.setState({\r\n isLoadingMore: false,\r\n isLoadingSearch: false,\r\n });\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n });\r\n };\r\n\r\n getTourFilter() {\r\n let _params = {};\r\n\r\n // this will permit to show an indicator that the search query is loading\r\n if (this.state?.searchValue !== \"\") {\r\n _params = {\r\n query: this.state?.searchValue,\r\n };\r\n }\r\n\r\n // if the user is filtering, we need to add the fitlering status to the params\r\n if (this.state.filter?.status && this.state.filter?.status !== \"all\") {\r\n _params[\"statusFilter\"] = this.state.filter?.status.toUpperCase();\r\n }\r\n\r\n // if the user is ordering, we need to add the ordering status to the params\r\n if (this.state.order?.status) {\r\n _params[\"order\"] = this.state.order?.status.toUpperCase();\r\n }\r\n\r\n const url = new URL(\"/filters\", this.props.BASE_URL);\r\n for (let x in _params) {\r\n url.searchParams.append(x, _params[x]);\r\n }\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n if (this.state.localTours.length === 0) {\r\n this.setState({\r\n isLoadingMore: true,\r\n });\r\n }\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = { method: \"GET\", headers: myHeaders, cache: \"no-cache\" };\r\n\r\n console.log(\"GET request @ \", url.toString());\r\n return fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n return response.json().then((result) => {\r\n if (result.status === \"Success\") {\r\n this.setState((prevState, props) => ({\r\n filters: result?.filters?.dates,\r\n endDate:\r\n result?.filters?.dates && result?.filters?.dates[0]\r\n ? result?.filters?.dates[0]\r\n : null,\r\n startDate:\r\n result?.filters?.dates && result?.filters?.dates[0]\r\n ? result?.filters?.dates[0]\r\n : null,\r\n }));\r\n return { filters: result?.filters?.dates };\r\n //this.props.setTours(result.tours);\r\n }\r\n });\r\n } else {\r\n console.log(\"Mauvaise réponse du réseau\");\r\n response.json().then(function (result) {\r\n console.log(\"result\", result);\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n this.setState({\r\n isLoading: false,\r\n });\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n });\r\n }\r\n\r\n filteringFunction = memoize(async (filter, order) => {\r\n this.fetchToursAndFilter();\r\n });\r\n\r\n /*******\r\n *\r\n * Handlers\r\n *\r\n *******/\r\n\r\n seeMoreHandler() {\r\n // incremente l'index et la end_date ssi il existe\r\n let actualDateIndex = null;\r\n\r\n // get the index of the actual date in the filters array\r\n if (this.state.filters) {\r\n actualDateIndex = this.state.filters.indexOf(this.state.endDate);\r\n }\r\n // if the index is not the last one or second to last, increment it, else set isReachingEnd to true\r\n if (actualDateIndex !== -1 && this.state.filters) {\r\n if (actualDateIndex + 1 <= this.state.filters.length - 1) {\r\n this.setState(\r\n {\r\n endDate: this.state.filters[actualDateIndex + 1],\r\n },\r\n () => {\r\n this.getTourPaginated();\r\n }\r\n );\r\n } else {\r\n if (!this.state.isReachingEnd) {\r\n this.setState({\r\n isReachingEnd: true,\r\n });\r\n }\r\n }\r\n\r\n // if the index is the last one, set isReachingEnd to true\r\n if (\r\n !this.state.isReachingEnd &&\r\n actualDateIndex + 1 >= this.state.filters.length - 1\r\n ) {\r\n this.setState({\r\n isReachingEnd: true,\r\n });\r\n }\r\n }\r\n }\r\n\r\n handleChangeSort(e, _status) {\r\n this.setState({\r\n order: {\r\n displayName: computeTourSortStatusname(_status),\r\n status: _status,\r\n },\r\n isOrdering: true,\r\n });\r\n }\r\n\r\n handleChange(e, _status) {\r\n this.setState({\r\n filter: {\r\n displayName: tour_status?.properties[_status]?.display_name,\r\n status: _status,\r\n },\r\n isFiltering: _status !== tour_status.ALL,\r\n });\r\n }\r\n\r\n handleSearchBar(value) {\r\n // const target = e.target;\r\n // const value = target.value;\r\n\r\n clearTimeout(this.timer);\r\n\r\n this.setState({\r\n searchValue: value,\r\n isTyping: true,\r\n });\r\n\r\n this.timer = setTimeout(async () => {\r\n this.setState({\r\n isTyping: false,\r\n });\r\n\r\n if (value === \"\") {\r\n this.setState(\r\n {\r\n localTours: [],\r\n endDate:\r\n this.state.filters && this.state.filters[0]\r\n ? this.state.filters[0]\r\n : new Date().toISOString().slice(0, 10),\r\n },\r\n () => {\r\n this.fetchToursAndFilter();\r\n }\r\n );\r\n } else {\r\n this.fetchToursAndFilter();\r\n }\r\n }, 600);\r\n\r\n this.setState({ searchValue: value });\r\n }\r\n\r\n handleDeleteTourByIDFilter() {\r\n this.setState({\r\n filterByID: false,\r\n });\r\n this.props.history.push(\"/tour\");\r\n\r\n this.fetchToursAndFilter();\r\n }\r\n\r\n /*******\r\n *\r\n * Render\r\n *\r\n *******/\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Liste des tournées

\r\n \r\n {this.state.localToursCount}\r\n \r\n
\r\n\r\n

Retrouvez la liste de vos tournées et leurs détails.

\r\n
\r\n
\r\n
\r\n \r\n {this.state.filterByID ? (\r\n this.handleDeleteTourByIDFilter()}\r\n >\r\n \r\n Supprimer le filtre actuel\r\n \r\n ) : null}\r\n\r\n {!this.state.filterByID ? (\r\n <>\r\n
\r\n \r\n \r\n \r\n {this.state.order\r\n ? this.state.order.displayName\r\n : \"undefined\"}\r\n \r\n \r\n this.handleChangeSort(e, \"asc\")}\r\n >\r\n Ascendant\r\n \r\n this.handleChangeSort(e, \"desc\")}\r\n >\r\n Descendant\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {this.state.filter\r\n ? this.state.filter.displayName\r\n : \"undefined\"}\r\n \r\n \r\n \r\n this.handleChange(e, tour_status.ALL)\r\n }\r\n >\r\n {\r\n tour_status?.properties[tour_status.ALL]\r\n ?.display_name\r\n }\r\n \r\n \r\n this.handleChange(e, tour_status.CREATED)\r\n }\r\n >\r\n {\r\n tour_status?.properties[tour_status.CREATED]\r\n ?.display_name\r\n }\r\n \r\n \r\n this.handleChange(e, tour_status.STARTED)\r\n }\r\n >\r\n {\r\n tour_status?.properties[tour_status.STARTED]\r\n ?.display_name\r\n }\r\n \r\n \r\n this.handleChange(e, tour_status.ISSUE)\r\n }\r\n >\r\n {\r\n tour_status?.properties[tour_status.ISSUE]\r\n ?.display_name\r\n }\r\n \r\n \r\n this.handleChange(e, tour_status.DONE)\r\n }\r\n >\r\n {\r\n tour_status?.properties[tour_status.DONE]\r\n ?.display_name\r\n }\r\n \r\n \r\n \r\n
\r\n \r\n ) : null}\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n this.handleSearchBar(e.target.value)}\r\n placeholder=\"Rechercher par n° de BL...\"\r\n className=\"fleet-search-tour\"\r\n disabled={this.state.filterByID}\r\n />\r\n {this.state.isTyping || this.state.isLoadingSearch ? (\r\n \r\n ) : null}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n this.seeMoreHandler()}\r\n disabled={\r\n this.state.isReachingEnd ||\r\n this.state.isLoadingMore ||\r\n this.state.isLoading ||\r\n this.state.localTours?.length === 0\r\n }\r\n >\r\n {this.state.isReachingEnd\r\n ? \"Plus de tournées\"\r\n : this.state.isLoadingMore\r\n ? \"Chargement...\"\r\n : \"Voir +\"}\r\n \r\n
\r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state /*, ownProps*/) => {\r\n return {\r\n BASE_URL: state.BASE_URL,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(Tour);\r\n","import React, { Component } from \"react\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport {\r\n faExclamationCircle,\r\n faInfo,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nimport {\r\n Container,\r\n Row,\r\n Col,\r\n Form,\r\n Button,\r\n InputGroup,\r\n Badge,\r\n Collapse,\r\n} from \"react-bootstrap\";\r\n\r\nimport \"../App/App.scss\";\r\nimport \"../_pages/Vehicle/Vehicle.css\";\r\nimport { setVehiclePin, setVehicles } from \"../../reducer/Action\";\r\nimport connect from \"react-redux/es/connect/connect\";\r\nimport { faTruck } from \"@fortawesome/pro-regular-svg-icons\";\r\nimport { faCloud } from \"@fortawesome/pro-solid-svg-icons\";\r\nimport { faAlarmClock, faHourglass, faHourglassClock } from \"@fortawesome/pro-duotone-svg-icons\";\r\nimport { faCheck } from \"@fortawesome/pro-light-svg-icons\";\r\n\r\nexport class VehicleItem extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n pinCode: \"\",\r\n doneTypingInterval: 2000,\r\n typingTimer: null,\r\n error: \"\",\r\n errorClass: \"none\",\r\n errorStatus: false,\r\n isOpen: false,\r\n };\r\n }\r\n\r\n doneTyping = (id) => {\r\n const url = new URL(this.props.BASE_URL + \"/vehicules/\" + id);\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = {\r\n method: \"PUT\",\r\n headers: myHeaders,\r\n body: JSON.stringify({\r\n pin: this.state.pinCode,\r\n }),\r\n cache: \"no-cache\",\r\n };\r\n\r\n // console.log(\"PUT request @ \", this.props.BASE_URL + \"/vehicules/\" + id);\r\n\r\n fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n if (result.status === \"Success\") {\r\n if (!result.isVehiculeUpdated) {\r\n this.setState({\r\n error:\r\n \"Une erreur est survenue lors de la mise à jour du pin.\",\r\n errorClass: \"block\",\r\n errorStatus: true,\r\n });\r\n }\r\n this.props.setVehiclePin(id, this.state.pinCode);\r\n }\r\n });\r\n } else {\r\n console.log(\"Mauvaise réponse du réseau\");\r\n response.json().then((result) => {\r\n this.setState({\r\n error: \"Une erreur est survenue lors de la mise à jour du pin.\",\r\n errorClass: \"block\",\r\n errorStatus: true,\r\n });\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n this.setState({\r\n error:\r\n \"Une erreur est survenue lors de la mise à jour du pin.: Failed to fetch\",\r\n errorClass: \"block\",\r\n errorStatus: true,\r\n });\r\n });\r\n };\r\n\r\n handlePinChange(e, id) {\r\n const pin = e.target.value;\r\n let errorMessage = \"\";\r\n let error = false;\r\n\r\n clearTimeout(this.state.typingTimer);\r\n\r\n this.setState({\r\n pinCode: pin,\r\n });\r\n\r\n if (pin.length !== 6) {\r\n error = true;\r\n errorMessage = \"Le code pin doit avoir une longueur de 6 caractères.\";\r\n }\r\n\r\n if (!error) {\r\n this.setState({\r\n typingTimer: setTimeout(() => {\r\n this.doneTyping(id);\r\n }, 2000),\r\n error: \"\",\r\n errorClass: \"none\",\r\n errorStatus: false,\r\n });\r\n } else {\r\n this.setState({\r\n error: errorMessage,\r\n errorClass: \"block\",\r\n errorStatus: true,\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n render() {\r\n let classNameInput =\r\n \"input-generic-fleet-searchbar form-control text-center \";\r\n classNameInput += this.state.error ? \"error\" : \"\";\r\n console.log(\r\n new Date(this.props.vehicle.last_tour_date).toLocaleDateString(), \" // \", new Date().toLocaleDateString()\r\n )\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Camion {this.props.vehicle.vehicule_key}{\" \"}\r\n \r\n \r\n Immat. {\" \"}\r\n {this.props.vehicle.imat ? this.props.vehicle.imat : \"XXXXXXX\"}\r\n \r\n
\r\n
\r\n \r\n Livraisons totales\r\n \r\n \r\n {this.props.vehicle.total_steps}\r\n \r\n
\r\n {/*
\r\n \r\n Distance totale\r\n \r\n \r\n nc\r\n \r\n
*/}\r\n {/*
\r\n \r\n Carbon (CO2) \r\n \r\n \r\n nc\r\n \r\n
*/}\r\n
\r\n \r\n Ponctualité\r\n \r\n \r\n {(this.props.vehicle.ontime_steps / this.props.vehicle.total_steps * 100).toFixed(2) + \"%\"} {\" - \"} \r\n {(this.props.vehicle.late_steps / this.props.vehicle.total_steps * 100).toFixed(2) + \"%\"}\r\n \r\n
\r\n
\r\n \r\n Dernière tournée\r\n \r\n \r\n {new Date(this.props.vehicle.last_tour_date).toLocaleDateString()}\r\n \r\n
\r\n
\r\n
\r\n {new Date(this.props.vehicle.last_tour_date).toLocaleDateString() == new Date().toLocaleDateString() ? \"En route\" : \"Non actif\"}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
Code PIN
\r\n
\r\n \r\n \r\n this.handlePinChange(\r\n e,\r\n this.props.vehicle.vehicule_id\r\n )\r\n }\r\n maxLength={\"6\"}\r\n defaultValue={this.props.vehicle.pin}\r\n />\r\n \r\n Nombre à 6 chiffres utilisé pour la connexion des\r\n livreurs.\r\n \r\n \r\n {\" \"}\r\n {this.state.error}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state /*, ownProps*/) => {\r\n return {\r\n BASE_URL: state.BASE_URL,\r\n vehicles: state.vehicles,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = { setVehiclePin };\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(VehicleItem);\r\n","import React, { Component } from \"react\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport {\r\n faTimes,\r\n faSearch,\r\n faEdit,\r\n faInfo,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport { setVehicles } from \"../../../reducer/Action\";\r\n\r\nimport { Container, Row, Col } from \"react-bootstrap\";\r\n\r\nimport \"../../App/App.scss\";\r\nimport \"./Vehicle.css\";\r\nimport VehicleItem from \"../../VehicleItem/VehicleItem\";\r\nimport connect from \"react-redux/es/connect/connect\";\r\nimport { Step } from \"../../Step/Step\";\r\nimport MyLoader from \"../../Loader/MyLoader\";\r\nimport { EmptyListComponent } from \"../../EmptyListComponent/EmptyListComponent\";\r\n\r\nexport class Vehicle extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isLoading: false,\r\n };\r\n }\r\n\r\n getVehicles = () => {\r\n const url = new URL(this.props.BASE_URL + \"/vehicules\");\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n if (this.props.vehicles?.length === 0) {\r\n this.setState({\r\n isLoading: true,\r\n });\r\n }\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = { method: \"GET\", headers: myHeaders, cache: \"no-cache\" };\r\n\r\n // console.log(\"GET request @ \", this.props.BASE_URL + \"/vehicules\");\r\n\r\n fetch(url, myInit)\r\n .then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n if (result.status === \"Success\") {\r\n this.setState({\r\n isLoading: false,\r\n });\r\n this.props.setVehicles(result.vehicules);\r\n }\r\n });\r\n } else {\r\n this.setState({\r\n isLoading: false,\r\n });\r\n console.log(\"Mauvaise réponse du réseau\");\r\n response.json().then(function (result) {\r\n console.log(\"result\", result);\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n this.setState({\r\n isLoading: false,\r\n });\r\n console.log(\r\n \"Il y a eu un problème avec l'opération fetch: \" + error.message\r\n );\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n this.getVehicles();\r\n }\r\n\r\n render() {\r\n if (this.props.vehicles?.length > 0) {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Flotte de véhicule

\r\n \r\n {this.props.vehicles ? this.props.vehicles.length : 0}\r\n \r\n
\r\n\r\n

\r\n Retrouvez la liste de vos véhicules et modifiez leur code pin.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {this.props.vehicles.map((value, index) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n );\r\n } else {\r\n if (!this.state.isLoading) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Flotte de véhicule

\r\n \r\n {this.props.vehicles ? this.props.vehicles.length : 0}\r\n \r\n
\r\n\r\n

\r\n Retrouvez la liste de vos véhicules et modifiez leur code\r\n pin.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n }\r\n }\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state /*, ownProps*/) => {\r\n return {\r\n BASE_URL: state.BASE_URL,\r\n vehicles: state.vehicles,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = { setVehicles };\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Vehicle);\r\n","import React, { Component } from \"react\";\r\nimport { ButtonGroup, Button } from \"react-bootstrap\";\r\n\r\nexport class ClientFilters extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tvalidClients: [],\r\n\t\t};\r\n\t}\r\n\r\n\tcomponentDidUpdate(prevProps) {\r\n\t\tif (prevProps.invoicesPerClients !== this.props.invoicesPerClients) {\r\n\t\t\tthis.setState({\r\n\t\t\t\tvalidClients: this.props.invoicesPerClients.filter(client => {\r\n\t\t\t\t\treturn client.invoices.length > 0\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\t\r\n\trender() {\r\n\t\treturn this.state.validClients.length > 1\r\n\t\t\t? (<>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tthis.state.validClients?.map(client => \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}\r\n\t\t\t\t\t\r\n\t\t\t\t)\r\n\t\t\t: null\r\n\t}\r\n}","import React, { Component, useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faFileInvoiceDollar } from \"@fortawesome/free-solid-svg-icons\";\r\nimport moment from \"moment\";\r\nimport \"moment/locale/fr\";\r\n\r\nimport { Row, Col, Table } from \"react-bootstrap\";\r\n\r\nimport \"../../App/App.scss\";\r\nimport \"./Admin.css\";\r\n\r\nimport { ClientFilters } from \"../../AdminComponents/ClientFilters/ClientFilters.js\";\r\n\r\nconst Admin = () => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [invoicesPerClient, setInvoicesPerClient] = useState([]);\r\n const [invoicesFiltered, setInvoicesFiltered] = useState([]);\r\n\r\n const BASE_URL = useSelector((state) => state.BASE_URL);\r\n\r\n useEffect(() => {\r\n async function getInvoicesPerClient() {\r\n setIsLoading(true);\r\n let url = new URL(BASE_URL + \"/admin/invoices\");\r\n const token = localStorage.getItem(\"fleetToken\");\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = {\r\n method: \"GET\",\r\n headers: myHeaders,\r\n cache: \"no-cache\",\r\n };\r\n\r\n try {\r\n const response = await fetch(url, myInit);\r\n\r\n if (response.ok) {\r\n const result = await response.json();\r\n\r\n if (result.status === \"Success\") {\r\n setInvoicesPerClient(result.invoicesPerClient);\r\n }\r\n }\r\n\r\n setIsLoading(false);\r\n } catch (error) {\r\n setIsLoading(false);\r\n console.error(error);\r\n }\r\n }\r\n\r\n getInvoicesPerClient();\r\n }, [BASE_URL]);\r\n\r\n useEffect(() => {\r\n // Si un seul client est retourné, sélectionner directement celui-là.\r\n\r\n if (invoicesPerClient?.length === 1) {\r\n setInvoicesFiltered(invoicesPerClient?.[0]?.invoices);\r\n }\r\n }, [invoicesPerClient]);\r\n\r\n const selectInvoicesForClientId = (clientId) => {\r\n const invoicesFiltered =\r\n invoicesPerClient?.filter((client) => client?.client_id === clientId)?.[0]\r\n ?.invoices ?? [];\r\n\r\n setInvoicesFiltered(invoicesFiltered);\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Administration

\r\n
\r\n\r\n

Consultez le détail de vos factures.

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {invoicesFiltered?.length > 0 && !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 {invoicesFiltered?.map((invoice, index) => {\r\n \r\n let aboPrice = 20.00;\r\n let smsPrice = 0.10;\r\n let vehiculeAmount = 0.00;\r\n let smsAmount = 0.00;\r\n \r\n vehiculeAmount = invoice.vehicle_count * aboPrice;\r\n smsAmount = invoice.sms_count * smsPrice;\r\n \r\n let totalAmount = vehiculeAmount + smsAmount;\r\n \r\n let periode = moment(invoice.end_date).format(\"MMMM YYYY\");\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n );\r\n })}\r\n \r\n
PériodeVéhicules actifsAbonnementEmail envoyésSMS envoyésCoût SMSTOTAL FACTUREFacture
{periode}{invoice.vehicle_count}{parseFloat(vehiculeAmount).toFixed(2)} € HT {invoice.email_count}{invoice.sms_count}{parseFloat(smsAmount).toFixed(2)} € HT{parseFloat(totalAmount).toFixed(2)} € HT\r\n {\" \"}\r\n {invoice.invoice_url ? (\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n \r\n ) : !isLoading ? (\r\n
\r\n Veuillez d'abord sélectionner un client à visualiser !\r\n
\r\n ) : null}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Admin;\r\n","export const reserve_status = {\r\n CREATED: \"CREATED\",\r\n SOLVED: \"SOLVED\",\r\n properties: {\r\n CREATED: {\r\n display_name: \"À traiter\",\r\n color: \"#FA983A\",\r\n },\r\n SOLVED: {\r\n display_name: \"Traitée\",\r\n color: \"#6B6B6B\",\r\n },\r\n },\r\n};\r\n","import './CardContract.css'\r\nimport { truncateString } from '../../../../utils/truncate-string';\r\nimport { reserve_status } from '../../../../constants/reserve_status'\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faClipboard } from \"@fortawesome/free-regular-svg-icons\";\r\n\r\nconst CardContract = ({ noBorderBottom, onHandleReserveClick, reserve }) => {\r\n return (\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n {reserve?.delivery_detail_key || \"n.c\"}\r\n \r\n \r\n {new Date(reserve?.created_at).toLocaleDateString(\r\n \"fr-FR\",\r\n {\r\n year: \"numeric\",\r\n month: \"short\",\r\n day: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n }\r\n ) || \"Pas d'information de date\"}\r\n \r\n \r\n
\r\n \r\n Message\r\n \r\n \r\n {reserve?.message?.length > 0 ? `${truncateString(reserve.message, 20)}`: \"Message non défini\"}\r\n \r\n
\r\n
\r\n \r\n Destinataire \r\n \r\n \r\n {reserve?.receiver_name ? reserve.receiver_name : \"n.c\"}\r\n \r\n
\r\n
\r\n \r\n Provenance\r\n \r\n \r\n {reserve?.type || \"n.c\"}\r\n \r\n
\r\n
\r\n \r\n {reserve_status.properties[reserve?.status]?.display_name}\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CardContract;\r\n","export function truncateString(str, num) {\r\n // If the length of str is less than or equal to num\r\n // just return str--don't truncate it.\r\n if (str.length <= num) {\r\n return str;\r\n }\r\n // Return str truncated with '...' concatenated to the end of str.\r\n return str.slice(0, num) + \"...\";\r\n}\r\n","import './CardsContractLoader.css'\r\n\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faClipboard } from \"@fortawesome/free-regular-svg-icons\";\r\nimport SkeletonLoader from \"tiny-skeleton-loader-react\";\r\n\r\nconst CardContract = ({ noBorderBottom}) => {\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CardContract;\r\n","import React, {useState, useEffect} from 'react'\r\nimport Pagination from \"react-bootstrap/Pagination\";\r\nimport \"./Pagination.css\"\r\nexport default function PaginationComponent(props) {\r\n\r\n const LEFT_PAGE = \"LEFT\";\r\n const RIGHT_PAGE = \"RIGHT\";\r\n const [totalRecords, setTotalRecords] = useState(null);\r\n const [totalPages, setTotalPages] = useState(null);\r\n const [pageLimit, setPageLimit] = useState(30);\r\n const [pageNeighbours, setPageNeighbours] = useState(0);\r\n const [currentPage, setCurrentPage] = useState(1);\r\n\r\n\r\n useEffect(() => {\r\n setPageLimit(typeof props.pageLimit === \"number\" ? props.pageLimit : 30);\r\n setTotalRecords(typeof props.totalRecords === \"number\" ? props.totalRecords : 0);\r\n setPageNeighbours(\r\n typeof props.pageNeighbours === \"number\"\r\n ? Math.max(0, Math.min(props.pageNeighbours, 2))\r\n : 0\r\n );\r\n setTotalPages(Math.ceil(props.totalRecords / props.pageLimit));\r\n }, [props.pageLimit, props.pageNeighbours, props.totalRecords]);\r\n\r\n /**\r\n * Helper method for creating a range of numbers\r\n * range(1, 5) => [1, 2, 3, 4, 5]\r\n */\r\n const range = (from, to, step = 1) => {\r\n let i = from;\r\n const range = [];\r\n\r\n while (i <= to) {\r\n range.push(i);\r\n i += step;\r\n }\r\n\r\n return range;\r\n };\r\n\r\n const fetchPageNumbers = () => {\r\n // const totalPages = totalPages;\r\n // const currentPage = currentPage;\r\n // const pageNeighbours = pageNeighbours;\r\n\r\n /**\r\n * totalNumbers: the total page numbers to show on the control\r\n * totalBlocks: totalNumbers + 2 to cover for the left(<) and right(>) controls\r\n */\r\n const totalNumbers = pageNeighbours * 2 + 3;\r\n const totalBlocks = totalNumbers + 2;\r\n\r\n if (totalPages > totalBlocks) {\r\n const startPage = Math.max(2, currentPage - pageNeighbours);\r\n const endPage = Math.min(totalPages - 1, currentPage + pageNeighbours);\r\n let pages = range(startPage, endPage);\r\n\r\n /**\r\n * hasLeftSpill: has hidden pages to the left\r\n * hasRightSpill: has hidden pages to the right\r\n * spillOffset: number of hidden pages either to the left or to the right\r\n */\r\n const hasLeftSpill = startPage > 2;\r\n const hasRightSpill = totalPages - endPage > 1;\r\n const spillOffset = totalNumbers - (pages.length + 1);\r\n\r\n switch (true) {\r\n // handle: (1) < {5 6} [7] {8 9} (10)\r\n case hasLeftSpill && !hasRightSpill: {\r\n const extraPages = range(startPage - spillOffset, startPage - 1);\r\n pages = [LEFT_PAGE, ...extraPages, ...pages];\r\n break;\r\n }\r\n\r\n // handle: (1) {2 3} [4] {5 6} > (10)\r\n case !hasLeftSpill && hasRightSpill: {\r\n const extraPages = range(endPage + 1, endPage + spillOffset);\r\n pages = [...pages, ...extraPages, RIGHT_PAGE];\r\n break;\r\n }\r\n\r\n // handle: (1) < {4 5} [6] {7 8} > (10)\r\n case hasLeftSpill && hasRightSpill:\r\n default: {\r\n pages = [LEFT_PAGE, ...pages, RIGHT_PAGE];\r\n break;\r\n }\r\n }\r\n\r\n return [1, ...pages, totalPages];\r\n }\r\n\r\n return range(1, totalPages);\r\n };\r\n\r\n const gotoPage = (page) => {\r\n const { onPageChanged = (f) => f } = props.onPageChanged;\r\n const currentPage = Math.max(0, Math.min(page, totalPages));\r\n setCurrentPage(currentPage);\r\n props.onPageChanged({\r\n currentPage,\r\n totalPages,\r\n pageLimit,\r\n totalRecords\r\n })\r\n };\r\n\r\n const handleClick = (page) => (evt) => {\r\n evt.preventDefault();\r\n gotoPage(page);\r\n };\r\n\r\n const handleMoveLeft = (evt) => {\r\n evt.preventDefault();\r\n gotoPage(currentPage - pageNeighbours * 2 - 1);\r\n };\r\n\r\n const handleMoveRight = (evt) => {\r\n evt.preventDefault();\r\n gotoPage(currentPage + pageNeighbours * 2 + 1);\r\n };\r\n\r\n const pages = fetchPageNumbers();\r\n\r\n if (!totalRecords || totalPages === 1) return null;\r\n\r\n return (\r\n
\r\n

résultats {(currentPage - 1) * pageLimit + 1} - {totalRecords < (currentPage * pageLimit) ? totalRecords : (currentPage) * pageLimit} sur {totalRecords}

\r\n \r\n {pages.map((page, index) => {\r\n if (page === LEFT_PAGE)\r\n return (\r\n
  • \r\n \r\n «\r\n Previous\r\n \r\n
  • \r\n );\r\n\r\n if (page === RIGHT_PAGE)\r\n return (\r\n
  • \r\n \r\n »\r\n Next\r\n \r\n
  • \r\n );\r\n\r\n return (\r\n \r\n \r\n {page}\r\n \r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n \r\n )\r\n}\r\n","import React from \"react\";\r\nimport styles from \"./tchat.scss\";\r\nimport moment from \"moment\";\r\n\r\nconst getFormattedDate = (date) => {\r\n return moment(date).format(\"ddd DD MMM à HH:mm\");\r\n};\r\n\r\nexport default function Message({ message }) {\r\n return (\r\n
    \r\n
    \r\n {message?.reserve ? \"Reserve\" : \"Réponse\"} :\r\n
    \r\n
    \r\n \r\n
    {message?.text}
    \r\n
    \r\n
    \r\n {message?.reserve\r\n ? `${message?.username || \"Un utilisateur\"} a émis une réserve le`\r\n : \"Le service de livraison à répondu\"}{\" \"}\r\n {getFormattedDate(message?.date)}\r\n
    \r\n
    \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport Message from \"./message\";\r\nimport \"./tchat.scss\";\r\n\r\nexport default function Tchat({ messages }) {\r\n return (\r\n
    \r\n {messages.map((message) => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n })}\r\n
    \r\n );\r\n}\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { Button, Col, Row, Modal, Card } from \"react-bootstrap\";\r\nimport \"./ModalAnswerReserve.scss\";\r\nimport SimpleBarReact from \"simplebar-react\";\r\n\r\nimport { Formik, Form } from \"formik\";\r\nimport { useField } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport SkeletonLoader from \"tiny-skeleton-loader-react\";\r\nimport Tchat from \"../../../tchat/index\";\r\nimport { reserve_status } from \"../../../../constants/reserve_status\";\r\n\r\nconst GenericFomikTextInput = ({ children, ...props }) => {\r\n // useField() returns [formik.getFieldProps(), formik.getFieldMeta()]\r\n // which we can spread on . We can use field meta to show an error\r\n // message if the field is invalid and it has been touched (i.e. visited)\r\n const [field, meta] = useField(props);\r\n\r\n return (\r\n
    \r\n {children ? (\r\n \r\n ) : null}\r\n
    \r\n \r\n
    \r\n {meta.touched && meta.error ? meta.error : null}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nfunction ModalAnswerReserve(props) {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [error, setError] = useState(false);\r\n const [conversationArray, setConversationArray] = useState([]);\r\n\r\n /******\r\n *\r\n * functions\r\n *\r\n ******/\r\n\r\n const handleSubmitMethod = async (values) => {\r\n setIsLoading(true);\r\n\r\n if (!props.selectedreserve) {\r\n throw new Error(\"Impossible to find the Reserve !\");\r\n }\r\n\r\n try {\r\n const response = await putReserve(values, props.selectedreserve.id);\r\n if (!response.ok) {\r\n const error = await response.json();\r\n throw new Error(error.message || response.status);\r\n }\r\n return await response.json();\r\n } catch (error) {\r\n console.log(error);\r\n throw new Error(error?.message || \"Oops, une erreur est survenue\");\r\n }\r\n };\r\n\r\n const putReserve = async (values, id) => {\r\n const url = new URL(props.base_url + `/reserves_v2/${id}/solved`);\r\n const token = localStorage.getItem(\"fleetToken\");\r\n const body = {};\r\n\r\n setIsLoading(true);\r\n\r\n if (values?.message?.length > 0) {\r\n body[\"response\"] = values.message;\r\n }\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = {\r\n method: \"PUT\",\r\n headers: myHeaders,\r\n cache: \"no-cache\",\r\n body: JSON.stringify(body),\r\n };\r\n\r\n return fetch(url, myInit);\r\n };\r\n\r\n useEffect(() => {\r\n setConversationArray(buildConversationArray(props.selectedreserve));\r\n\r\n function buildConversationArray(reserve) {\r\n const temporaryConversation = [];\r\n\r\n // Message de l'utilisateur créant la reserve\r\n temporaryConversation.push({\r\n text: props.selectedreserve?.message || \"Message indisponible\",\r\n reserve: true,\r\n date: new Date(props.selectedreserve?.created_at),\r\n id: 1,\r\n username: props.selectedreserve?.receiver_name || \"n.c\",\r\n });\r\n\r\n // L'administrateur n'a pas encore traité la reserve\r\n\r\n if (reserve?.response) {\r\n temporaryConversation.push({\r\n text: reserve?.response,\r\n reserve: false,\r\n date: new Date(props.selectedreserve?.created_at),\r\n id: 3,\r\n });\r\n }\r\n\r\n // L'administrateur à traitée la reserve sans laisser de message\r\n if (!reserve?.response && reserve?.status === reserve_status.SOLVED) {\r\n temporaryConversation.push({\r\n text: \"Le service de livraison a traité la réserve sans laisser de commentaire.\",\r\n reserve: false,\r\n date: new Date(reserve.updated_at),\r\n id: 3,\r\n });\r\n }\r\n return temporaryConversation;\r\n }\r\n }, [props.selectedreserve]);\r\n\r\n return (\r\n {}}\r\n >\r\n {/*
    */}\r\n {\r\n handleSubmitMethod(values)\r\n .then(async (response) => {\r\n setIsLoading(false);\r\n setSubmitting(false);\r\n setError(null);\r\n props.onHide(response?.has_been_updated);\r\n })\r\n .catch((error) => {\r\n console.error(error.message);\r\n setError(error.message);\r\n });\r\n }}\r\n >\r\n {({ errors, values, submitForm, setFieldValue }) => (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Réserve{\" \"}\r\n {props.selectedreserve?.delivery_detail_key\r\n ? `${props.selectedreserve.delivery_detail_key}`\r\n : \"000000\"}\r\n
    \r\n

    \r\n Ajoutez un message visible par le destinataire sur sa\r\n commande digitappro.\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {props.selectedreserve?.status &&\r\n props.selectedreserve?.status !== reserve_status.SOLVED && (\r\n
    \r\n \r\n Ajouter un commentaire (optionnel)\r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n {error}\r\n
    \r\n
    \r\n\r\n \r\n {\r\n submitForm();\r\n }}\r\n >\r\n {props.selectedreserve?.status &&\r\n props.selectedreserve?.status !== reserve_status.SOLVED\r\n ? \"Traiter la réserve\"\r\n : \"Déja traitée\"}\r\n \r\n \r\n
    \r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default ModalAnswerReserve;\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { Button, Col, Row, Modal, Card } from \"react-bootstrap\";\r\nimport \"./ModalConsultReserve.scss\";\r\nimport { reserve_status } from \"../../../../constants/reserve_status\";\r\n\r\nimport { Formik, Form } from \"formik\";\r\nimport { useField } from \"formik\";\r\nimport * as Yup from \"yup\";\r\n\r\nimport SkeletonLoader from \"tiny-skeleton-loader-react\";\r\nimport Tchat from \"../../../tchat/index\";\r\n\r\nconst GenericFomikTextInput = ({ children, ...props }) => {\r\n // useField() returns [formik.getFieldProps(), formik.getFieldMeta()]\r\n // which we can spread on . We can use field meta to show an error\r\n // message if the field is invalid and it has been touched (i.e. visited)\r\n const [field, meta] = useField(props);\r\n\r\n return (\r\n
    \r\n {children ? (\r\n \r\n ) : null}\r\n
    \r\n \r\n
    \r\n {meta.touched && meta.error ? meta.error : null}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nfunction ModalConsultReserve(props) {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [error, setError] = useState(false);\r\n const [conversationArray, setConversationArray] = useState([]);\r\n\r\n useEffect(() => {\r\n setConversationArray(buildConversationArray(props.selectedreserve));\r\n\r\n function buildConversationArray(reserve) {\r\n const temporaryConversation = [];\r\n\r\n // Message de l'utilisateur créant la reserve\r\n temporaryConversation.push(\r\n {\r\n text: props.selectedreserve?.message || \"Message indisponible\",\r\n reserve: true,\r\n date: new Date(props.selectedreserve?.created_at),\r\n id: 1,\r\n },\r\n {\r\n text: \"Votre réserve à été émise et sera bientôt traitée par un de nos services\",\r\n reserve: false,\r\n date: new Date(props.selectedreserve?.created_at),\r\n id: 2,\r\n }\r\n );\r\n\r\n // L'administrateur n'a pas encore traité la reserve\r\n\r\n if (reserve?.response) {\r\n temporaryConversation.push({\r\n text: reserve?.response,\r\n reserve: false,\r\n date: new Date(props.selectedreserve?.created_at),\r\n id: 3,\r\n });\r\n }\r\n\r\n // L'administrateur à traitée la reserve sans laisser de message\r\n if (!reserve?.response && reserve?.status === reserve_status.SOLVED) {\r\n temporaryConversation.push({\r\n text: \"Le service de livraison a traité la réserve sans laisser de commentaire.\",\r\n reserve: false,\r\n date: new Date(reserve.updated_at),\r\n id: 3,\r\n });\r\n }\r\n return temporaryConversation;\r\n }\r\n }, [props.selectedreserve]);\r\n\r\n const putReserve = async (values, id) => {\r\n const url = new URL(props.base_url + `/reserves_v2/${id}/solved`);\r\n const token = localStorage.getItem(\"fleetToken\");\r\n const body = {};\r\n\r\n setIsLoading(true);\r\n\r\n if (values?.message?.length > 0) {\r\n body[\"response\"] = values.message;\r\n }\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", token);\r\n let myInit = {\r\n method: \"PUT\",\r\n headers: myHeaders,\r\n cache: \"no-cache\",\r\n body: JSON.stringify(body),\r\n };\r\n\r\n return fetch(url, myInit);\r\n };\r\n\r\n const handleSubmitMethod = async (values) => {\r\n setIsLoading(true);\r\n\r\n if (!props.selectedreserve) {\r\n throw new Error(\"Impossible to find the Reserve !\");\r\n }\r\n\r\n try {\r\n const response = await putReserve(values, props.selectedreserve.id);\r\n if (!response.ok) {\r\n const error = await response.json();\r\n throw new Error(error.message || response.status);\r\n }\r\n return await response.json();\r\n } catch (error) {\r\n console.log(error);\r\n throw new Error(error?.message || \"Oops, une erreur est survenue\");\r\n }\r\n };\r\n\r\n return (\r\n \r\n
    \r\n {\r\n handleSubmitMethod(values)\r\n .then(async (response) => {\r\n setIsLoading(false);\r\n setSubmitting(false);\r\n setError(null);\r\n props.onHide(response?.has_been_updated);\r\n })\r\n .catch((error) => {\r\n console.error(error.message);\r\n setError(error.message);\r\n });\r\n }}\r\n >\r\n {({ errors, values, submitForm, setFieldValue }) => (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Historique réserve{\" \"}\r\n {props.selectedreserve?.delivery_detail_key\r\n ? `BL${props.selectedreserve.delivery_detail_key}`\r\n : \"000000\"}\r\n
    \r\n

    \r\n Derniere mise à jour le{\" \"}\r\n {new Date(\r\n props.selectedreserve?.updated_at\r\n ? props.selectedreserve.updated_at\r\n : props.selectedreserve?.created_at\r\n ).toLocaleDateString(\"fr-FR\", {\r\n year: \"numeric\",\r\n month: \"short\",\r\n day: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n }) || \"Pas d'information de date\"}\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n Ajouter un commentaire (optionnel)\r\n \r\n
    \r\n
    \r\n {error}\r\n
    \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default ModalConsultReserve;\r\n","import React from 'react'\r\nimport \"./log.scss\"\r\n\r\nexport default function Log({log}) {\r\n return (\r\n
    \r\n
    {log}
    \r\n
    \r\n )\r\n}\r\n","import React from 'react'\r\nimport \"./message.scss\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faHeadset, faTruck, faUser, faMessage } from '@fortawesome/free-solid-svg-icons'\r\n\r\nexport default function Message({message, type}) {\r\n const getIcon = () => {\r\n switch(type){\r\n case \"DIGITAPPRO\":\r\n return faUser\r\n case \"FLEET\":\r\n return faTruck\r\n case \"RESPONSE\":\r\n return faHeadset\r\n default:\r\n return faMessage\r\n }\r\n }\r\n \r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    {message}
    \r\n
    \r\n )\r\n}\r\n","import React from 'react'\r\nimport \"./product-reserve.scss\"\r\n\r\nexport default function ProductReserve({product}) {\r\n \r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {product.item_name}
    \r\n
    {product.item_ean}
    \r\n
    \r\n
    \r\n
    \r\n
    {product.reserve_quantity} sur {product.item_quantity}
    \r\n
    commandé{product.item_quantity > 1 ? \"s\" : \"\"}
    \r\n
    \r\n
    \r\n )\r\n}\r\n","import React from 'react'\r\nimport \"./select.scss\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faTimes } from '@fortawesome/free-solid-svg-icons'\r\n\r\nexport default function Select({values, selectedValues, setSelectedValues, isOpen, setIsOpen}) {\r\n const handleSelectedValues = (value, from) => {\r\n let copySelectedValues = [...selectedValues]\r\n let index = selectedValues?.indexOf(value)\r\n if(index >= 0){\r\n copySelectedValues.splice(index, 1)\r\n }\r\n else{\r\n copySelectedValues.push(value)\r\n }\r\n setSelectedValues(copySelectedValues)\r\n }\r\n\r\n return (\r\n
    event.stopPropagation()} style={{position: \"relative\", maxWidth: 300}}>\r\n
    setIsOpen(!isOpen)} className='select-container'>\r\n {selectedValues?.map(selectedValue => {\r\n return(\r\n
    \r\n
    setIsOpen(!isOpen)}>BL{selectedValue}
    \r\n
    {event.stopPropagation();handleSelectedValues(selectedValue)}}>\r\n \r\n
    \r\n
    \r\n )\r\n })}\r\n {selectedValues?.length < 1 && (\r\n
    Cliquez ici pour choisir des BLs...
    \r\n )}\r\n
    \r\n {isOpen && (\r\n
    \r\n {values?.map((value, index) => {\r\n return(\r\n
    handleSelectedValues(value, \"a\")} key={value} className={`choice ${selectedValues?.includes(value) ? \"checked\" : \"\"} ${index === 0 ? \"first\" : \"\"}`}>\r\n \r\n
    BL{value}
    \r\n
    \r\n )\r\n })}\r\n
    \r\n )}\r\n
    \r\n )\r\n}\r\n","import React from 'react'\r\nimport \"./bl-reserve.scss\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faStickyNote } from '@fortawesome/free-solid-svg-icons'\r\n\r\nexport default function BlReserve({bl}) {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    BL{bl?.delivery_detail_key}
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { Button, Col, Row, Modal, Card } from \"react-bootstrap\";\r\nimport \"./ModalReserve.scss\";\r\n\r\nimport { reserve_status } from \"../../../../constants/reserve_status\";\r\nimport Log from \"../../../Log\";\r\nimport Message from \"../../../Message\";\r\nimport { faClipboard } from \"@fortawesome/free-regular-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport ProductReserve from \"../../../ProductReserve\";\r\nimport Select from \"../../../Select\";\r\nimport { useSelector } from \"react-redux\";\r\nimport BlReserve from \"../../../BlReserve\";\r\n\r\nfunction ModalReserve({reserve_id, show, onHide}) {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const [comment, setComment] = useState(\"\");\r\n const [events, setEvents] = useState([]);\r\n const [selectedBls, setSelectedBls] = useState([]);\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [reserve, setReserve] = useState(null);\r\n \r\n const BASE_URL = useSelector((state) => state.BASE_URL);\r\n const TOKEN = localStorage.getItem(\"fleetToken\");\r\n\r\n const BLS_NUMBER = reserve?.delivery_details_linked?.length\r\n const CREATION_DATE = new Date(reserve?.created_at)\r\n\r\n useEffect(() => {\r\n (async() => {\r\n if(show){\r\n await getReserve()\r\n }\r\n else{\r\n setIsOpen(false)\r\n setSelectedBls([])\r\n setReserve(null)\r\n setError(\"\")\r\n setComment(\"\")\r\n setEvents([])\r\n }\r\n })()\r\n }, [show])\r\n \r\n useEffect(() => {\r\n if (reserve) {\r\n let bls_already_linked = []\r\n reserve?.delivery_details_available?.forEach(bl => {\r\n if(bl?.is_already_linked){\r\n bls_already_linked.push(bl?.delivery_detail_key)\r\n }\r\n })\r\n setSelectedBls(bls_already_linked)\r\n\r\n let events = [];\r\n let creation_log = reserve?.logs?.filter(\r\n (element) => element?.type === 'CREATION_LOG'\r\n )[0];\r\n if (creation_log) {\r\n events.push({\r\n text: creation_log?.message,\r\n type: 'LOG',\r\n });\r\n }\r\n if (reserve?.message?.length) {\r\n events.push({\r\n text: reserve?.message,\r\n type: reserve?.type,\r\n });\r\n }\r\n let response_log = reserve?.logs?.filter(\r\n (element) => element?.type === 'ANSWERED_AT'\r\n )[0];\r\n if (response_log) {\r\n events.push({\r\n text: response_log?.message,\r\n type: 'LOG',\r\n });\r\n }\r\n if (reserve?.response?.length) {\r\n events.push({\r\n text: reserve?.response,\r\n type: 'RESPONSE',\r\n });\r\n }\r\n\r\n setEvents(events);\r\n }\r\n }, [reserve]);\r\n\r\n const getReserve = async() => {\r\n if (!BASE_URL) return;\r\n\r\n setIsLoading(true);\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", TOKEN);\r\n let myInit = {\r\n method: \"GET\",\r\n headers: myHeaders,\r\n cache: \"no-cache\",\r\n };\r\n\r\n try {\r\n const response = await fetch(BASE_URL + `/reserves_v2/${reserve_id}`, myInit);\r\n\r\n if (response.ok) {\r\n const result = await response.json();\r\n if (!result?.reserve) {\r\n throw new Error(\"reserve is not defined\");\r\n }\r\n setReserve(result.reserve);\r\n }\r\n setIsLoading(false);\r\n } catch (error) {\r\n setIsLoading(false);\r\n }\r\n }\r\n \r\n const handleSubmitMethod = async () => {\r\n setIsLoading(true);\r\n\r\n if (!reserve_id) {\r\n throw new Error(\"Impossible to find the Reserve !\");\r\n }\r\n\r\n let resultUpdateBls, resultSolve\r\n \r\n let have_to_update = false\r\n selectedBls.forEach(element => {\r\n if(!reserve?.delivery_details_linked?.map(bl => bl.delivery_detail_key)?.includes(element)){\r\n have_to_update = true\r\n }\r\n })\r\n \r\n if(have_to_update){\r\n try {\r\n const response = await updateBls();\r\n if (!response.ok) {\r\n const error = await response.json();\r\n setError(error.message)\r\n throw new Error(error.message || response.status);\r\n }\r\n resultUpdateBls = await response.json();\r\n } catch (error) {\r\n setError(error.toString())\r\n }\r\n }\r\n if(!have_to_update || resultUpdateBls?.has_been_updated){\r\n try {\r\n const response = await solveReserve();\r\n if (!response.ok) {\r\n const error = await response.json();\r\n throw new Error(error || response.status);\r\n }\r\n resultSolve = await response.json();\r\n } catch (error) {\r\n setError(error.toString())\r\n }\r\n }\r\n setIsLoading(false)\r\n if(resultSolve?.has_been_updated){\r\n onHide(true)\r\n }\r\n };\r\n \r\n const updateBls = async () => {\r\n const body = {};\r\n let selectedBlsIds = reserve?.delivery_details_linked?.filter(bl => selectedBls.includes(bl?.delivery_detail_key))?.map(bl => bl?.delivery_detail_id)\r\n if (selectedBlsIds?.length) {\r\n body[\"delivery_detail_ids\"] = selectedBlsIds;\r\n }\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", TOKEN);\r\n let myInit = {\r\n method: \"PUT\",\r\n headers: myHeaders,\r\n cache: \"no-cache\",\r\n body: JSON.stringify(body),\r\n };\r\n\r\n return fetch(BASE_URL + `/reserves_v2/${reserve_id}/change-delivery-details`, myInit);\r\n };\r\n\r\n const solveReserve = async () => {\r\n const body = {};\r\n \r\n if (comment?.length) {\r\n body[\"response\"] = comment;\r\n }\r\n\r\n let myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n myHeaders.append(\"Authorization\", TOKEN);\r\n let myInit = {\r\n method: \"PUT\",\r\n headers: myHeaders,\r\n cache: \"no-cache\",\r\n body: JSON.stringify(body),\r\n };\r\n\r\n return fetch(BASE_URL + `/reserves_v2/${reserve_id}/solved`, myInit);\r\n };\r\n \r\n return (\r\n setIsOpen(false)}\r\n >\r\n \r\n
    \r\n
    \r\n {`${reserve?.status !== reserve_status.SOLVED ? \"Traiter r\" : \"R\"}éserve ${reserve?.delivery_detail_key}`}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    {`BL${reserve?.delivery_detail_key}${BLS_NUMBER > 1 ? \", +\"+(BLS_NUMBER-1)+\" BL\"+(BLS_NUMBER-1 > 1 ? \"s\" : \"\") : \"\"}`}
    \r\n
    \r\n {`Créée le ${CREATION_DATE.toLocaleDateString(\"fr-FR\", {\r\n year: \"numeric\",\r\n month: \"short\",\r\n day: \"numeric\",\r\n })} à ${CREATION_DATE.toLocaleTimeString(\"fr-FR\", {\r\n hour: \"2-digit\", \r\n minute: \"2-digit\"\r\n })}`}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {reserve_status.properties[reserve?.status]?.display_name}\r\n \r\n
    \r\n
    \r\n\r\n {reserve?.status === reserve_status.SOLVED && (\r\n
    \r\n
    BONS DE LIVRAISON
    \r\n
    Retrouvez la liste des BLs concernés par la réserve.
    \r\n\r\n
    \r\n {reserve?.delivery_details_linked?.map(bl => (\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n\r\n
    \r\n
    HISTORIQUE DE L'ÉCHANGE
    \r\n
    Retrouvez l'entièreté de l'historique des échanges concernant cette réserve.
    \r\n\r\n
    \r\n {events.map(event => {\r\n return(\r\n event?.type === \"LOG\" ? \r\n \r\n :\r\n \r\n )\r\n })}\r\n
    \r\n
    \r\n\r\n {reserve?.products?.length > 0 && (\r\n
    \r\n
    PRODUITS CONCERNÉS
    \r\n
    Veuillez retrouver ci-dessous la liste des produits signalés par l'utilisateur pour réclamation :
    \r\n\r\n
    \r\n {reserve?.products?.map(product => {\r\n return(\r\n \r\n )\r\n })}\r\n
    \r\n
    \r\n )}\r\n\r\n {reserve?.status !== reserve_status.SOLVED && (\r\n <>\r\n
    \r\n
    BONS DE LIVRAISON CONCERNÉS
    \r\n
    Vous pouvez réassigner les BLs concernés par la réserve si besoin.
    \r\n\r\n
    \r\n